1

私は PHP クラスが初めてで、呼び出し元と同じクラスに存在する関数をどのように呼び出すことができるのか疑問に思っています。これは正しいですか、それとも最善のアプローチですか?

page1.php:

 $object=new MyClass();
 $object->func1(); 

MyClass.php:

class MyClass{

    function func1(){
        ....
         $object->func2();
    }

    function func2(){
        ....
    }

}

私がこれをしたい理由は、func1 が func1 の最後に func2 を呼び出すためですが、他の状況では func1 とは独立して func2 を使用する必要があるためです。 func2 からの単純なコピー/貼り付けで、func1 の最後に配置します)。

編集:または使用できますか:

self::func2();
4

4 に答える 4

10

を使用$thisして現在のオブジェクトを参照し、 を呼び出すことができます$this->func2()

( の値は$this、オブジェクト インスタンスのコンテキストにいるときに、PHP によって自動的に入力されます。)

于 2012-10-26T07:15:09.080 に答える
5

それ以外の

$object->func2

書きます

$this->func2()
于 2012-10-26T07:16:13.713 に答える
2
class MyClass{

    function func1(){
        ....
        $this->func2()
    }

    function func2(){
        ....
    }

}

$thisクラスの内部関数と内部変数を呼び出すために使用できます

于 2012-10-26T07:17:17.127 に答える
0

func1 から呼び出したい場合は$this->func2();

クラスの外から呼び出すには、使用します$object->func2();

しかし、func2 が必要ない場合は、コードを func1 の最後に移動できます。func2 からいくつかのコードを変更する必要があるかもしれません。それはあなたの選択です。

于 2012-10-26T07:18:41.377 に答える