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();

fooこれは、のfunction bar()代わりにエコーbletchしますmethod bar()

于 2012-07-18T15:18:42.233 に答える