0

我在 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 而 codepad 使用 5.2.5 的服务器上工作。每个 PHP 版本的类变量有哪些变化?

4

1 回答 1

3

范围解析运算符(也称为 Paamayim Nekudotayim)或更简单的术语是双冒号,是允许访问类的静态、常量和重写成员或方法的标记。

您在函数 test ($testing) 中定义的变量不是静态或常量,因此范围解析运算符不适用。

class test { 
  const TEST = 'testing 123';
  function test () {
    $testing = 'TEST';
    echo $testing;
  }
} 

$class = new test;

或者只是访问类外的常量:

test::TEST;

如果使用正确,它应该可以在您家中的服务器上运行。关于从 PHP4 到 PHP5 的 OOP 更改,php 文档可能有用。虽然只是在我的脑海中,但我会说 PHP5 与类变量相关的主要变化是它们的可见性、静态和常量。所有这些都包含在提供的文档链接中。

于 2009-02-12T01:55:21.743 回答