12

私はこのようなPHPのクラスを持っています:

class RandomNumberStorer{

     var $integers = [];

     public function store_number($int){
         array_push($this->integers, $int);
     }

     public function run(){
         generate_number('store_number');
     }
}

...他の場所には、関数をパラメーターとして受け取る関数があります。

function generate_number($thingtoDo){ 
     $thingToDo(rand());
}

したがって、 a を初期化しRandomNumberStorerて実行します。

$rns = new RandomNumberStorer();
$rns->run();

そして、「未定義関数 store_number への呼び出し」があったというエラーが表示されます。store_numberがクラス内にあることを理解していますRandomNumberStorerが、それはよりメソッドですが、クラスメソッドをgenerate_number関数に渡す方法はありますか?

関数をクラスの外に移動しようとしましたstore_numberが、もちろん、$thisクラス/インスタンスのコンテキスト外への参照に関連するエラーが発生します。

RandomNumberStorerこの関数を他の場所で使用しているため、 のインスタンスを外部generate_number関数に渡すことは避けたいと思います。

これもできますか?私は次のようなものを想定していました:

 generate_number('$this->store_number')
4

1 に答える 1