如何知道PHP中的调用方法类型?
可能重复:如何知道PHP中的调用方法类型?,php,Php,可能重复: 我的意思是,如果您以这种方式调用该方法 $class->method()我如何知道在同一个方法中调用方法的方式是什么?在调用方法时,不应该将静态的方法与非静态的方法混合使用,但是如果存在$this方法,可以在方法内部进行检查 $staticcalled = isset($this); 嘿,好家伙。我将这两个新的化身标记为最老的一个的复制品。+1,但不应该有任何方法来检查它。就像你说的,不要把静态和非静态混为一谈。很遗憾PHP甚至允许它。@GolezTrol:不太好函数foo($
我的意思是,如果您以这种方式调用该方法
$class->method()
我如何知道在同一个方法中调用方法的方式是什么?在调用方法时,不应该将静态的方法与非静态的方法混合使用,但是如果存在$this
方法,可以在方法内部进行检查
$staticcalled = isset($this);
嘿,好家伙。我将这两个新的化身标记为最老的一个的复制品。+1,但不应该有任何方法来检查它。就像你说的,不要把静态和非静态混为一谈。很遗憾PHP甚至允许它。@GolezTrol:不太好<代码>函数foo($bar){$bar->Baz();}
如果我知道在任何$bar
中都有一个静态的Baz
,这就行了。否则,我必须知道混凝土类型,打破鸭子类型。“混合”静态和非静态方法不一定表明设计不好;这可能只是为了解决PHP愚蠢的坚持,即不能将同一个方法同时作为静态和非静态调用(实际上是E_STRICT
),而且不能有两个同名的独立方法,一个是静态的,另一个是非静态的。