日期:2014-05-16  浏览次数:20492 次

PHP是可以对非静态形式的方法进行静态形式的调用的。
本帖最后由 lytreo650 于 2014-03-14 10:05:21 编辑
<?php
class test {
public function sayHello () {
echo 'Hello World';
      }
}
test::sayHello();


运行上面这段代码可以打印出hello world,而且不会报错。
但是我看《深入PHP面向对象,模式与实践》这本书上面明确写着
只有在使用parent关键字调用方法的时候,才能对一个非静态方法进行静态形式的调用。


请问这到底是怎么回事?难道说PHP在思想上是不支持这么做的,但实际上却可以这么做?
------解决方案--------------------
对一个非静态方法进行静态形式的调用 是 php 的惯例
只在 php 5.3 才引入 E_STRICT  检查,php 5.4 才强制检查
------解决方案--------------------
和php不同版本的错误检查级别有关系
------解决方案--------------------
那是当然的!
你不是有 ~E_STRICT 吗?
屏蔽了 E_STRICT 级别的错误检查