1

だから私はおおよそこのようなPHPスタックを持っています

Class Stack {

    public $name;
    public $parent;
    public $children = array();

    public function __construct($name, $parent = false) {
        $this->name = $name;
        $this->parent = $parent;
    }

    public function newChild($name) {
        $this->children[] = new Stack($name, $this);
    }

    public function &top() {
        if(is_object($this->parent))
            return $this->parent->top();
        return $this;
    }

}

したがって、このスタックのレベル 5 付近のどこかで、レベル 0 に変更を加える必要があるため、top() メソッドを使用してアクセスしたいと考えています。だから私はそうしますが、参照によって渡されなかったので、私が行った変更は最終ビルドシーケンスには適用されません。私はいくつかの異なるアイデアを試しましたが、まだうまくいきません。何か案は?

編集:私は実際にそれを理解しました。私が上で書いたことは、実際に私が扱っていたスタックが完全に機能し、親が設定されていない途中でどこかで大きくなり、スタックを完全に上げていませんでした。これが実際にどのようなプロジェクトであるかを確認します。http://github.com/EvolutionSDK/lhtmlをのぞいてみてください(論理 HTML... は、HTML ベースのページから PHP への限定的なアクセスを提供します。基本的に、MVC アーキテクチャ フレームワークの C と V の両方です。)

4

1 に答える 1

0

基本的に、私の大きなPHPスタックには、設定されていない「親」変数がありました。これにより、 top() 関数がスタックの一番上にアクセスできなくなりました。だから途中までしか上がらなかった。

私がそれを理解し、子をその親に再接続すると、完全に機能しました。クラスは常に参照によって渡されるためです。

これを投稿するのに時間がかかってすみません。

于 2012-05-15T20:06:35.707 に答える