2

私は別のクラスをフェッチして何らかの形でそれを返すPHPクラスに取り組んでいます.明らかにコンストラクターは値を返すことができないので、参照渡しを見ていて、これが私が得たものです:

<?php
class Example {
    public function __construct($name,&$var){
        //This registers the class in my system (I know this part works)
        IceTray::$Registry->registerLibrary($name);
        //this fetches the object of the registered class above (I know it works)
        $var = IceTray::$Registry->Libraries->$name;
    }

参照渡しが間違っていますか? 私のプロジェクトでこれを使用するとき:

$test = 0;
$lib = new Example('ClassName', $test);
$test->testing();

$Test は、オブジェクトを格納する変数です。コンストラクターの最初の引数は、登録して、2 番目の引数である参照渡しの変数に割り当てるクラスの名前です。次の行は、要求されたクラス名内でメソッドが呼び出されますが、機能していません。

エラーも何もありません。参照渡しの概念に慣れていないので、何か間違っているのかもしれません。どんな助けでも大歓迎です、事前に感謝します!

4

1 に答える 1

0
class Example {
    public $var = null;
    public function __construct($name){
        //This registers the class in my system (I know this part works)
        IceTray::$Registry->registerLibrary($name);
        //this fetches the object of the registered class above (I know it works)
        $this->var = IceTray::$Registry->Libraries->$name;
    }
}

$lib = new Example('ClassName');
$lib->var->testing();

必要なものを返すために呼び出しプロパティを使用しないでください。

于 2013-07-07T21:16:15.400 に答える