类变量,范围解析运算符和PHP的不同版本

时间:2009-02-12 01:45:47

标签: php class-variables

我在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对类变量有什么变化?

1 个答案:

答案 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与类变量相关的主要变化是它们的可见性,静态和常量。所有这些都包含在提供的文档链接中。