尽管允许使用以下语法访问类变量:- $object::$variable,但它是否具有任何意义,即在访问类变量的情况下,我们可以使用类名或该类的对象来访问类变量是不是吗?
问问题
498 次
2 回答
0
该运算符用于访问静态变量。这意味着变量链接到类,而不是该类的实例。即在所有实例上共享。
这是一个例子来告诉你我的意思:
class MyClass
{
public static $myStaticVar;
public $myObjectVar;
}
$instance1 = new MyClass();
$instance2 = new MyClass();
// normal vars are linked to an instance of a class
$instance1->myObjectVar = 'value1';
$instance2->myObjectVar = 'value2';
// statics are shared between all instances of the same class
$instance1::$myStaticVar = 'value3';
echo $instance2::$myStaticVar; // results in 'value3'!
于 2013-09-10T12:36:14.980 回答
-1
你是这个意思吗?
<?php
class A {
public static $b = 'Hello World!';
}
echo A::$b;
$obj = new A();
echo $obj::$b;
警告:我不建议使用实例变量访问静态类成员。
这仅适用于 PHP >= 5.3.0。
PHP <= 5.2.17 不喜欢$obj::$b
并抛出语法错误:
解析错误:语法错误,意外的 T_PAAMAYIM_NEKUDOTAYIM,期待 ',' 或 ';'
于 2013-09-10T12:27:57.770 回答