我只是根据使用其他语言的经验来询问,这些语言可以根据类范围从全局函数调用中消除方法调用的歧义 - 例如:
class Foo {
function bar(){
echo 'bletch';
}
function baz(){
$this->bar();
}
}
所以我想我是在问是否有另一种方法$this->bar()
,或者换句话说,我怎么能省略$this
,考虑到上下文,这似乎是多余的?
不,您不能在 PHP 中bar()
从内部访问,因为您可以轻松地拥有不属于任何类/对象的全局函数(这是您所引用的大多数语言的区别),这将导致冲突。baz()
$this->
bar()
简而言之,这是不可能的。
因为在给定以下内容的情况下,调用bar
将调用在类之外命名的函数bar
:
function bar() {
echo 'foo';
}
class Foo {
function bar(){
echo 'bletch';
}
function baz(){
$this->bar();
}
function foobar() {
bar();
}
}
$instance = new Foo();
$instance->foobar();
这将呼应foo
thefunction bar()
而不是bletch
themethod bar()