我在codepad.org中尝试了以下代码:
class test {
const TEST = 'testing 123';
function test () {
$testing = 'TEST';
echo self::$testing;
}
}
$class = new test;
它返回时:
1
2 Fatal error: Access to undeclared static property: test::$testing on line 6
我想知道引用带变量的类常量是否可以在我的运行php 5.2.9的服务器上运行,而键盘使用5.2.5。 每个版本的PHP对类变量有什么变化?
答案 0 :(得分:3)
范围解析运算符(也是 叫做Paamayim Nekudotayim)或者在 更简单的术语,双冒号,是一个 允许访问静态的令牌, 不断的,被覆盖的成员或 一类的方法。
您在函数测试($ testing)中定义的变量不是静态或常量,因此范围解析运算符不适用。
class test {
const TEST = 'testing 123';
function test () {
$testing = 'TEST';
echo $testing;
}
}
$class = new test;
或者只是访问课堂外的常量:
test::TEST;
如果使用正确,它应该可以在家里的服务器上运行。关于从PHP4到PHP5的OOP更改,php documentation可能很有用。虽然只是我的头脑,但我会说PHP5与类变量相关的主要变化是它们的可见性,静态和常量。所有这些都包含在提供的文档链接中。