3

我只是根据使用其他语言的经验来询问,这些语言可以根据类范围从全局函数调用中消除方法调用的歧义 - 例如:

class Foo {
 function bar(){
   echo 'bletch';
 }

 function baz(){
   $this->bar();
 }
}

所以我想我是在问是否有另一种方法$this->bar(),或者换句话说,我怎么能省略$this,考虑到上下文,这似乎是多余的?

4

2 回答 2

4

不,您不能在 PHP 中bar()从内部访问,因为您可以轻松地拥有不属于任何类/对象的全局函数(这是您所引用的大多数语言的区别),这将导致冲突。baz()$this->bar()

于 2012-07-18T15:00:08.177 回答
0

简而言之,这是不可能的。

因为在给定以下内容的情况下,调用bar将调用在类之外命名的函数bar

function bar() {
 echo 'foo';
}

class Foo {
 function bar(){
   echo 'bletch';
 }

 function baz(){
   $this->bar();
 }

 function foobar() {
   bar();
 }
}

$instance = new Foo();

$instance->foobar();

这将呼应foothefunction bar()而不是bletchthemethod bar()

于 2012-07-18T15:18:42.233 回答