【发布时间】:2011-08-08 20:49:21
【问题描述】:
<?php
class A {
public function instanceFunc() {
echo "instance";
}
public static function staticFunc() {
echo "static";
}
}
A::instanceFunc(); // instance
$a = new A();
$a->staticFunc(); // static
这意味着 PHP 中的静态方法和实例方法完全没有区别。 Zend 甚至没有抱怨它(没有警告)。
在 Zend 引擎中。静态方法和实例方法都保存在 zend_class_entry.function_table 中。
为什么 PHP 会这样?这是错误还是功能?
【问题讨论】:
-
测试你的代码让我哭了...
-
套用伊恩马尔科姆的话说:“仅仅因为你可以并不意味着你应该!” :)
标签: php php-internals