2012-05-10 13 views
1

を参照することにより、クラスにアクセスするので、私はどこかに、このスタックのレベル5の周りに、私は(トップを使用してレベル0にアクセスしたいおおよそこの大きな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; 
    } 

} 

のように見えるPHPスタックを持っています)私はそれに変更を加える必要があるので、メソッド。だから私は行うが、変更は、参照によって渡されたので、最後のビルドシーケンスでは適用されません。私はいくつかのアイデアを試してみましたが、私はまだそれを正しく通過させることができません。何か案は?

編集:私は実際にそれを理解しました。私が上に書いたことは、実際には、私がやっているスタックは、巨大になり、親が設定したやり方に沿ってどこかでスタックしていたので、ずっとスタックしていませんでした。これが実際にどのプロジェクトであるかを見る。 http://github.com/EvolutionSDK/lhtmlを見てください(論理HTML ... HTMLベースのページからPHPへのアクセスが制限されていますが、基本的にはMVCアーキテクチャフレームワークのCとVの両方です)。

+1

あなたの質問をサンプルコードで更新して、どのように使用し、何をし、何をしたいのかを示すことができますか?どのような標準PHPデータ構造の実装[リンク](http://www.php.net/manual/en/spl.datastructures.php)を使用しない任意の理由? – zafarkhaja

+0

ケリー、似たようなことをする必要があります。あなたの質問への回答を説明や説明とともに載せることができれば素晴らしいでしょう。また、問題を解決済みとしてマークすることも可能です(あなた自身の質問に答えることができます、それはまったく問題ありません)。そしておそらく私は賞金をもらうだろう;) – hakre

答えて

0

基本的には、変数。 top()関数はスタックの先頭にアクセスしませんでした。だから、それは部分的にしか進まなかった。

私はそれを考え出し、子供を親に再接続して、それは完全に働いた。クラスは常に参照によって渡されます。

申し訳ありませんが、私はこれを投稿するまで何時間もかかりました。

関連する問題