Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何知道PHP中的调用方法类型?_Php - Fatal编程技术网

如何知道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
),而且不能有两个同名的独立方法,一个是静态的,另一个是非静态的。