php基础入门

Jun 23, 2016 pm 01:08 PM

一、序言

 由于新公司的需要,我也就从原来的asp专向了,php的学习中。希望通过自己的学习能够尽快的熟悉了解php

二、php独特的语法特色

 1、引号问题

在php中单引号和双引号的作用基本相同,但是有些场合却又是不同的

都可以用来包含要引用字符串

<meta charset="utf-8"><?php    $str1="xiecanyong";    $str2='xcy';    echo $str1;    echo "<br />";    echo $str2;?>
로그인 후 복사

但是单引号中的内容只被解析成为字符串,而双引号可以在字符串中加入变量

<meta charset="utf-8"><?php    $age=",I am age 22";    $str1="xiecanyong$age";    $str2='xcy$age';    echo $str1;    echo "<br />";    echo $str2;?>
로그인 후 복사

结果就自行运行一下,这里不解释

2、PHP常量

PHP相比于ASP,存在一些系统封装好的常量,这些有利于我们的使用,同时还支持我们自行封装常量

常见的常量有:

如下一些常用的PHP系统常量:

__FILE__ 当前PHP文件名

__LINE__ 当前PHP文件中所在的行数

__FUNCTION__ 当前所执行的函数

__CLASS__ 当前所执行的类

PHP_VERSION PHP的版本

PHP_OS 当前服务器的操作系统

TRUE 同true

FALSE 同false

E_ERROR 到最近的错误处

E_WARNING 到最近的警告处

E_PARSE 语法有错误处

E_NOTICE PHP语言中有异常处

M__PI 圆周率

M__E 科学常数e

M__LOG2E 以2为底e的对数

M_LOG10E 以10为底e的对数

M_LN2 2的自然对数

M_LN10 10的自然对数

PHP系统常量的内容就介绍到这里,希望对大家有所帮助。

举个例子:

<meta charset="utf-8"><?php    echo __Line__;?>
로그인 후 복사

打印出来的结果是:3,表示当前是在第三行执行

在常量的使用中,我们一般是这样使用的

1、使用define方法来定义

<meta charset="utf-8"><?php    //模拟圆的面积计算    define("R", 5);    $area=R*R*pi();    echo $area;?>
로그인 후 복사

2、使用const关键字来定义
例如:const p=2;这样就确定了一个常量p,值为2

3、常量的检验

对于一个大型项目而言,我们不知道某个参数是否为变量还是常量,如果是常量的话,那么重新赋值会发生错误,所以我们要通过defined方法来检验是否为某个参数是否为常量

<meta charset="utf-8"><?php    //$CONSTANT="2";    define("CONSTANT","2");if (defined('CONSTANT')) {    echo CONSTANT;}?>
로그인 후 복사

3、PHP字符串操作

下面以一个综合的PHP字符串操作来讲解一下

<meta charset="utf-8"><?php    $str = "Hello PHP";    //获取指定字符在字符串中的位置    echo  strpos($str,"P")."<br>";    //截取指定位置的字符串(从第2个字符到最后)    $str1 = substr($str,2);    //截取指定位置的字符串(从第2个字符开始往后截取3位)    $str2 = substr($str,2,2);    //以指定间距分割字符串    $str3 = str_split($str);    $str4 = str_split($str,2);    print_r($str4)."<br>";    //以指定字符分割字符串    $str = "PHP JAVA JS HTML CSS";    $str5 = explode(" ",$str);    print_r($str5)."<br>";?>
로그인 후 복사

字符串连接符

这里的字符串连接符跟其他语言的连接符有些不同,是通过"."来起到连接的,而在PHP中.=相当于其他语言的+=

错误控制运算符

PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。

<?php  $conn = @mysql_connect("localhost","username","password");echo "出错了,错误原因是:".$php_errormsg;?>
로그인 후 복사

error_reporting(0); 禁止显示PHP警告提示

更多的字符串操作详见:http://www.jianshu.com/p/91ed5dc67977

4、可变函数

<meta charset="utf-8"><?php    function name(){        echo "xcy";    }    $n="name";    $n();?>
로그인 후 복사

原理是:首先定义个一个name方法,然后是定义一个变量内容为name,最后一句其实就是$n()=name+(),也就是相当于执行了name这个方法

5、常见的内置函数

str_replace 可以实现字符串的替换

function_exists 判断一下函数是否存在

method_exists 可以用来检测类的方法是否存在

class_exists类是否定义可以使用

6、PHP面向对象

一个简单的PHP面向对象

<meta charset="utf-8"><?php    //定义一个类    class Person{        //定义一个属性        public $name="liLei";        //定义一个方法        public function Hobby(){            return $this->name;        }    }<br />  //实例化    $per=new Person();    $per->name='xiaoLi';    echo $per->Hobby();?>
로그인 후 복사

特别注意->后面的变量不能加上"$"

一般我们常见的有public、private、protected这三个修饰符

要注意的是方法和属性也可以被static修饰,但是被修饰的方法或者是属性不可以使用->来调用,应该要换成::

<meta charset="utf-8"><?php    //定义一个类    class Person{        //定义一个属性        static $name="LiLei";    }    error_reporting(0);    $per=new Person();    $per::name;?>
로그인 후 복사

构造函数

在PHP中也存在构造函数,但是书写上与asp有些不通过

<meta charset="utf-8"><?php    //定义一个构造类    class Person{        public function __construct(){            echo "this is construct";        }    }    $per=new Person();?>
로그인 후 복사

如果是继承关系中,子类可以通过parent::__construct()来调用父类的构造函数

<meta charset="utf-8"><?php    //定义一个构造类    class Person{        public function __construct(){            echo "父类构造函数\n";        }    }    class LiLei extends Person{        public function __construct(){            parent::__construct();            echo "子类构造函数\n";                    }    }    $per=new LiLei();?>
로그인 후 복사

在static方法中,不允许使用$this来对自身的调用,应该要写成self,同时我们应该还要注意::这个符号后面的$是不能省略的

<meta charset="utf-8"><?php    //定义一个构造类    class Person{        public function __construct(){            echo "父类构造函数\n";        }    }    class LiLei extends Person{                public function __construct(){            parent::__construct();            echo "子类构造函数\n";                    }        public static $name='LiLei';        public static function GoodAt(){            return self::$name;        }    }    $per=new LiLei();    echo "<br />";    echo $per::GoodAt();?>
로그인 후 복사

_destruct(),这个方法为析构函数,但是由于PHP中存在垃圾回收机制,所以这个不常用

重载

这里的重载跟C#中方法的重载不是同一个定义,这里的重载指的是,对属性的相关操作

class Car {  private $ary = array(); //创建属性  public function __set($key, $val) {     $this->ary[$key] = $val;  }  //获取属性  public function __get($key) {      if (isset($this->ary[$key])) {          return $this->ary[$key];      }      return null;  }  //判断属性是否存在  public function __isset($key) {      if (isset($this->ary[$key])) {          return true;      }      return false;  }  //释放属性  public function __unset($key) {      unset($this->ary[$key]);  }}$car = new Car();$car->name = '汽车';  //name属性动态创建并赋值echo $car->name;
로그인 후 복사

方法的重载通过 call 来实现,当调用不存在的方法的时候,将会转为参数调用call方法,当调用不存在的静态方法时会使用 __callStatic 重载。

class Car {  public $speed = 0;  public function __call($name, $args) {      if ($name == 'speedUp') {          $this->speed += 10;      }  }}$car = new Car();$car->speedUp(); //调用不存在的方法会使用重载echo $car->speed;
로그인 후 복사

 

其他高级的操作详见:http://www.jianshu.com/p/26ac93b6bf32

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> ​​'Hello World', 'github.com'=> ​​[ 'foo'=> 'bar'], 'forge.laravel.com'=>

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

PHP에서 늦은 정적 결합의 개념을 설명하십시오. PHP에서 늦은 정적 결합의 개념을 설명하십시오. Mar 21, 2025 pm 01:33 PM

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

프레임 워크 보안 기능 : 취약점 보호. 프레임 워크 보안 기능 : 취약점 보호. Mar 28, 2025 pm 05:11 PM

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

See all articles