1. 范圍解析操作符 (::)
范圍解析操作符(也可稱(chēng)作 Paamayim Nekudotayim)或者更簡(jiǎn)單地說(shuō)是一對(duì)冒號(hào),可以用于訪(fǎng)問(wèn)靜態(tài)成員,類(lèi)常量,還可以用于覆蓋類(lèi)中的屬性和方法。
當(dāng)在類(lèi)定義之外引用到這些項(xiàng)目時(shí),要使用類(lèi)名。
自 PHP 5.3.0 起,可以通過(guò)變量來(lái)引用類(lèi),該變量的值不能是關(guān)鍵字(如 self,parent 和 static)。
把 Paamayim Nekudotayim 選作雙冒號(hào)操作符的名字似乎有些奇怪。然而,這是 Zend 開(kāi)發(fā)小組在寫(xiě) Zend Engine 0.5(被用于 PHP 3 中)時(shí)所作出的決定。事實(shí)上這個(gè)詞在希伯萊文就是雙冒號(hào)的意思。
<?php
class MyClass {
const CONST_VALUE = 'A constant value'; //定義常量
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; // 自 PHP 5.3.0 起
echo MyClass::CONST_VALUE; //訪(fǎng)問(wèn)常量
?>
(1.1) self,parent 和 static
在類(lèi)定義內(nèi)部使用 ::
<?php
class OtherClass extends MyClass
{
public static $my_static = 'static var';
public static function doubleColon() {
echo parent::CONST_VALUE . "\n";
echo self::$my_static . "\n";
}
}
$classname = 'OtherClass';
echo $classname::doubleColon(); // 自 PHP 5.3.0 起
OtherClass::doubleColon();
?>
調(diào)用父類(lèi)的方法
<?php
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()\n";
}
}
class OtherClass extends MyClass
{
// 覆蓋了父類(lèi)的定義
public function myFunc()
{
// 但還是可以調(diào)用父類(lèi)中被覆蓋的方法
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}
$class = new OtherClass();
$class->myFunc();
?>
2. PHP中=>和->用法
2.1 =>的用法
在php中數(shù)組默認(rèn)鍵名是整數(shù)(如:0,1,2 .....),也可以自己定義任意字符鍵名(最好是有實(shí)際意義),如:
$css=array('style'=>'0',‘color’=>‘green‘); //關(guān)聯(lián)數(shù)組的寫(xiě)法
則$css['style']=='0',$css['color']=='green'。
2.2 ->的用法
->用來(lái)引用對(duì)象的成員(屬性與方法);
$arr=['a'=>123,'b'=>456];//數(shù)組初始化
echo $arr['a'];//數(shù)組引用
print_r($arr);//查看數(shù)組
class A{
public $a=123;
public $b=456;
}
$obj=new A();
echo $obj->a;//對(duì)象引用
print_r($obj);//查看對(duì)象
?>