操作符 "::"、"->"、"=>" 使用说明
一、:: 范围解析操作符(::)
概述:范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,
可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。
Example #1 在类的外部使用 :: 操作符,访问const常量
<?php
class MyClass {
const CONST_VALUE = 'A constant value';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; // 自 PHP 5.3.0 起
echo MyClass::CONST_VALUE;
?>
Example #2 在类定义内部使用 ::,访问父类常量
<?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();
?>
Example #3 调用父类的方法,父类方法已经被子类覆盖
<?php
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()\n";
}
}
class OtherClass extends MyClass
{
// 覆盖了父类的定义
public function myFunc()
{
// 但还是可以调用父类中被覆盖的方法
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}
$class = new OtherClass();
$class->myFunc();
?>
二、=> 数组成员访问符号
概述:一般用于数组的 键=>值
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>
三、-> 对象成员访问符号
概述:访问类的属性、方法
<?php
class SimpleClass
{
// property declaration
public $var = 'a default value';
// method declaration
public function displayVar() {
echo $this->var;
}
}
$obj = new SimpleClass();
$obj->displayVar();
?>
一、:: 范围解析操作符(::)
概述:范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,
可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。
Example #1 在类的外部使用 :: 操作符,访问const常量
<?php
class MyClass {
const CONST_VALUE = 'A constant value';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; // 自 PHP 5.3.0 起
echo MyClass::CONST_VALUE;
?>
Example #2 在类定义内部使用 ::,访问父类常量
<?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();
?>
Example #3 调用父类的方法,父类方法已经被子类覆盖
<?php
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()\n";
}
}
class OtherClass extends MyClass
{
// 覆盖了父类的定义
public function myFunc()
{
// 但还是可以调用父类中被覆盖的方法
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}
$class = new OtherClass();
$class->myFunc();
?>
二、=> 数组成员访问符号
概述:一般用于数组的 键=>值
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>
三、-> 对象成员访问符号
概述:访问类的属性、方法
<?php
class SimpleClass
{
// property declaration
public $var = 'a default value';
// method declaration
public function displayVar() {
echo $this->var;
}
}
$obj = new SimpleClass();
$obj->displayVar();
?>