在你有別的編程語言的基礎下,你想學習PHP,可能要了解的PHP特有的東西。
定界符
使用<<<TT(可以是任意字符,但是不可以在別的地方使用過)和TT,會解析html格式和變量,如果在<<<后面加上單引號就會不解析
$x=123
echo <<<TT
123123$x 123
TT;
對象
只有public,protected,private權限控制
類中的parent類似Java的super
lass AA
{public $name;private $age;public static $sex = "woman";//靜態屬性 需要類名調用const tall = "170cm";//常量 不允許修改/*** @param $name*/public function __construct($name){$this->name = $name;$this->age = self::$sex;//靜態屬性不能用$this調用 需要用self::echo "創建對象" . PHP_EOL;}static function tt(){echo "靜態方法" . PHP_EOL;//在靜態方法中調用非靜態的方法echo (new self)->name;}public function __destruct(){// TODO: Implement __destruct() method.echo "銷毀對象" . PHP_EOL;}}$AA = new AA("zhangsan");
$AA->name = "lisi";
AA::$sex = "man";//靜態屬性用類名調用
AA::tt();
echo $AA->name . AA::$sex . PHP_EOL;
延遲綁定 static
用static進行延遲綁定可以調用的對象決定到底使用哪個值
class A
{protected static $name = "123";public function eat(){echo self::$name . PHP_EOL;//指定為當前類中的屬性echo static::$name . PHP_EOL;//根據調用的對象來決定調用哪個類中的屬性}
}class B extends A
{protected static $name = "456";
}//(new A())->eat();
(new B())->eat();
接口
接口里的權限只能是public
抽象類 abstract
抽象方法權限可以使用public,protected,可以包含非抽象方法的實現和抽象方法的聲明,可以有構造方法
trait 代碼復用
解決單一繼承,可以使用多個trait,用逗號隔開。里面不能有類常量,不能被實例化。
可以使用抽象方法
可以使用靜態屬性和靜態方法
可以使用parent和其他trait
多個trait使用不可以有相同的key不同value
trait A
{public function T(){echo "A" . PHP_EOL;}
}trait B
{public function T(){echo "B" . PHP_EOL;}
}class C
{use A, B {A::T insteadof B;//使用A中的T方法替換B中的T方法B::T as T1;//使用B中的T方法并起別名T1B::T as private T2;//as改別名時也可以改權限}public function d(){echo $this->T2();}
}$c = new C();
$c->T();
$c->T1();
$c->d();
中斷輸出
中斷進程,并輸出當前要輸出的值
half(要輸出的內容)