- 締切済み
PHPコードの解読
現在あるPHPコードを見ながら、新たなPHPファイルを書いているところなんですが、(以下、現在あるPHPコード。) class pc_page_test extends Action { function handleError() { test_redirect('pc', 'page_test'); } function execute($requests) { $u = $GLOBALS['AUTH']->uid(); $inc_navi = fetch_inc_navi('h'); ・・・・ ここにある、$uを別のPHPプログラムファイルでも取得したいと思っています。 $u = $GLOBALS['AUTH']->uid(); だけを書いても、 Call to a member function uid() on a non-object in C:\...ファイル名 と、エラーが出ます。 この場合どういう風に書けばよいのでしょうか。 色々自分でも調べてみましたが、解決方法がわからないので、質問させてください。 補足等必要であれば、言っていただければ補足します。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- korota-xp
- ベストアンサー率0% (0/0)
同じく、本とネットで調べながら、見よう見まねでPHPを勉強して 1ヶ月半になるものです。 $uを取り出したいのか、 そこに入れられた$GLOBALS['AUTH']->uid()を取り出したいのか、にもよると思いますが、 別ファイルで$uを取り出したい場合について。 合っているかどうか分かりませんが、気になることをいくつか。 1.uid()が、別ファイルで実行できる状況にあるでしょうか 2.$GLOBALS['AUTH']が定義されているプログラムも、別ファイルで実行できる状況にあるでしょうか 3.他にも、$uのために使われている変数や関数、クラスを全て、別ファイルで実行できる状況にあるでしょうか($requestsなど) 4.pc_page_testクラスのスーパークラスを、別ファイルで使える状況にあるでしょうか 5.pc_page_testクラスを、別ファイルで使える状況にあるでしょうか 6.pc_page_testのインスタンスを、別ファイルで作成していますか 7.pc_page_testのfunctionを、別ファイルで実行していますか 以上の元で、 $u = $GLOBALS['AUTH']->uid() ↓ $this->u = $GLOBALS['AUTH']->uid() にすれば、クラス外から変数を使えるようになるみたいです。 $● = new pc_page_test; //pc_page_testクラスのインスタンスを作成 $●->execute($requests); //executeメソッドを実行 print_r($●->u); //$this->uの中身を、試しに表示して確認
- yyr446
- ベストアンサー率65% (870/1330)
「OpenPNE関係者の方ですか?」 申し訳ありません。関係者じゃありませんしユーザーでもありません 「OpenPNEのSNSで質問していたら、自分で調べろとたたかれてしまったので、こちらで質問しています」 自分で調べろとたたかれてしまったのは、OpenPNEのドキュメントとか FAQですぐ調べられるような、よくある質問だったからではないでしょうか? ここで質問しても、OpenPNEのSNSに参加している人ほど詳しい人は少ないので回答は得られにくいと思います。 ここで得られるのは、一般的なPHPの質問です。 例えば、 $GLOBALS 変数って何ですか? とか、 別のPHPに変数を引き渡すの方法は? みたいな。
- yyr446
- ベストアンサー率65% (870/1330)
[現在あるPHPコードを見ながら、新たなPHPファイルを書いているところなんですが、$u = $GLOBALS['AUTH']->uid()を別のPHPプログラムファイルでも取得したい]の意味がよくわからないのですが、「現在あるPHPコード」って「OpenPNE」「mixi」みたいなやつのページのコードで、同様な仕組みを自分で作りたいという事ですか?
補足
そうです。よくご存じで! まさに、OpenPNEですね。 OpenPNE内に、オリジナルのページを作ろうと思っています。 ただ、Smartyがあまりわからないので、PHPだけで作りたくて。 OpenPNE関係者の方ですか? OpenPNEのSNSで質問していたら、自分で調べろとたたかれてしまったので、こちらで質問していますw
- tany180sx
- ベストアンサー率63% (239/379)
$GLOBALS['AUTH'] がなんなのかよくわかりませんが、 $AUTHオブジェクトを色んなところから使いたいってことですかね? 1.引数で渡す pc_page_test::execute($request, $AUTH); 2.オブジェクト変数として先に与えておく $pc_page_test->setAuth($AUTH); 3.クラス変数として先に与えておく $pc_page_test::setAuth($AUTH); 4.クラス変数などを利用して入れ物を作っておく Zend_Registry::set('auth', $AUTH); --- class pc_page_test { function execute($requests) { $u = Zend_Registry::get('auth')->uid(); } } pc_page_test が $AUTH と密接に係るようなら2、3でもよし $AUTH が幅広く利用されるなら4.かなと思ったりします。
- SAYKA
- ベストアンサー率34% (944/2776)
通常は ファイルに書き出すんじゃないかな webベースだっていうならセッション・・・?