::, the scope resolution operator,用于引用类的静态成员和常量.它还用于引用超类的构造函数.以下是一些代码,说明了范围解析运算符的几种不同用法:
class A {
const BAR = 1;
public static $foo = 2;
private $silly;
public function __construct() {
$this->silly = self::BAR;
}
}
class B extends A {
public function __construct() {
parent::__construct();
}
public static function getStuff() {
return 'this is tiring stuff.';
}
}
echo A::BAR;
echo A::$foo;
echo B::getStuff();
?>
一个小小的琐事:范围分辨率运算符也被称为“paamayim nekudotayim”,这意味着希伯来语中的“两个点两次”.
&安培;在您的示例的上下文中,如果您使用的是PHP 5或更高版本,则不会执行任何有用的操作,应将其删除.在php 4中,这是必要的,以确保没有使用返回对象的副本.在php 5中,除非调用clone,否则不会创建对象副本.所以&不需要.还有一个案例&在PHP 5中仍然有用:当你迭代数组的元素并修改值时,你必须使用&运算符以影响数组的元素.