在从自己(或孩子)的类中调用方法之前要求$this->
有什么用处?这意味着什么?认为默认情况下引擎应该在类中看起来不合逻辑吗?
答案 0 :(得分:4)
考虑以下示例:
function bar()
{
echo "Outside\n";
}
class foo
{
public function __construct()
{
bar();
}
public function bar()
{
echo "Inside\n";
}
}
new foo;
因此,如果没有$this->
前缀构造函数对bar()
的调用,PHP会调用外部函数而不是方法。使用$this->
消除了歧义,并精确定义了您要调用的函数。
如果你所建议的是真的(自动搜索类),那么就我所知(等待评论中疯狂的不可读的黑客攻击),在PHP中用类方法调用全局函数是不可能的与另一个类方法同名的范围。
答案 1 :(得分:0)
当然,这可能是合乎逻辑的。这也不是PHP的构建方式。与JavaScript相同:
var x = {a: 0, f: function() { alert(a); }};
x.f(); // TypeError, a isn't defined
......还有很多其他语言。我想他们不想打破全球范围。与PHP的所有其他问题相比,这真的是一个问题吗? :)
答案 2 :(得分:0)
我对PHP不实用,但通常是可读性问题。
当你的全局方法与该类的名称相同时,它还有助于避免名称冲突。