试图学习php并抓住另一个障碍
好的,这就是他们在php.net上关于::
的说法范围解析运算符(也称为Paamayim Nekudotayim)或简单来说,双冒号,是一个允许访问类的静态,常量和重写属性或方法的标记。
从PHP 5.3.0开始,可以使用变量引用该类。变量的值不能是关键字(例如self,parent和static)。
从类定义外部引用这些项时,请使用类的名称。
class MyClass {
const CONST_VALUE = 'A constant value';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE;
echo MyClass::CONST_VALUE;
?>
现在回到上面的代码
$classname = 'MyClass';
这是一个变数!正在给A' STRING' “MyClass'!
的价值。”echo $classname::CONST_VALUE;
这条线如何可能!它没有任何关于这个类的事情!
基本上是一个简单易变的变量! 因此,如何通过以下方式获得能够获得类别常数的能力? 只有类似的我才能看到“我的阶级”和“我的阶级”。理论上的但是没有力量让它发生它只是一个字符串。
有人可以解释,因为我每天有100个障碍,我开始认为php刚刚组成,因为他们在其中发现了太多相互矛盾的事情。
答案 0 :(得分:1)
在这种情况下,这两行基本相同。
echo $classname::CONST_VALUE;
echo MyClass::CONST_VALUE;
PHP试图"施放"字符串"MyClass"
到一个类。如果班级存在,一切都像魅力一样。
其他例子可能是:
$instance = new $classname;
其中$instance
是MyClass
的有效实例。
换句话说,您可以使用字符串表示替换类名。