好吧,我想我在这里有一些东西......
在一个类中,我试图根据使用的方法的名称来调节私有函数。
所以代码看起来像:
<?php
class my_class{
public function my_method($arg1) {
$this->private_function($arg1);
}
private function private_function($arg2){
if (__METHOD__ == "my_class::my_method"){
#THIS FAILS
}else{
#THIS WORKS
}
return;
}
}
(new my_class())->my_method($something);
__METHOD__
如果我在尝试使用它的同一级别上执行 var_dump(),我会得到一个不错的string(19)"my_class::my_method"
. 所以我将一个字符串与另一个字符串进行比较。
以下也将失败:
- 将两个变量都转换为字符串并进行比较。
- 复制
__METHOD__
到 a(string) $var
并比较它们。 - 将两个字符串都放在上面并比较它们。
- 对文本使用单引号。
我可能是错的,但我想我在这里遇到了一个错误:(
PHP 版本 5.6.1 - 赢