问题是由于对什么是财产的误解,
a property is a variable defined in a class
是的。如果展开上面的示例并添加属性…
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
class Foo {
public static $a = "static property";
public static function aStaticMethod() {
// ...
echo 'In Static method';
}
}
Foo::aStaticMethod();//output: In Static method
echo Foo::$a;
$obj = new Foo;
$obj->aStaticMethod();//output: In Static method
echo $obj->a;
这试图引用
$a
,但输出是…
In Static methodstatic propertyIn Static methodPHP Notice: Accessing static property Foo::$a as non static in /home/nigel/workspace2/Test/t2.php on line 18
PHP Stack trace:
PHP 1. {main}() /home/nigel/workspace2/Test/t2.php:0
PHP Notice: Undefined property: Foo::$a in /home/nigel/workspace2/Test/t2.php on line 18
PHP Stack trace:
PHP 1. {main}() /home/nigel/workspace2/Test/t2.php:0
Notice: Accessing static property Foo::$a as non-static in /home/nigel/workspace2/Test/t2.php on line 18
Call Stack:
0.0001 348024 1. {main}() /home/nigel/workspace2/Test/t2.php:0
Notice: Undefined property: Foo::$a in /home/nigel/workspace2/Test/t2.php on line 18
Call Stack:
0.0001 348024 1. {main}() /home/nigel/workspace2/Test/t2.php:0
(请注意,我已将其设置为报告所有错误/警告等。)