• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:classのなかのfunctionの中のそのまたfuntionの中で$thisを参照するには?)

classの内部で$thisを参照する方法

このQ&Aのポイント
  • classの内部で$thisを参照するにはどうすれば良いでしょうか?
  • 他のObject言語ではできることができないため、困っています。
  • 出力結果としては、func1[a]func1_1[]が出力されますが、func1[a]func1_1[a]を希望しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • kotaron
  • ベストアンサー率61% (8/13)
回答No.1

以前、同じような疑問をもったので 少し調べてのですが、 PHP(Zend Engine1.5)では、名前空間を整える段階で、 functionの入れ子があると、メンバ関数内であろうと、 強制的に、クラス外に置かれ、普通の関数扱いにされてしまうみたいです。 当然、$this演算子も使用できないので、警告の対象になります。 func1_1()は通常の関数として扱われるので、引数などで明示的にメンバ変数を渡してやらないとアクセスできないと思います。 また、名前空間が通常の関数に属しますので、 通常関数のオーバーロードを許していないPHPでは、func1_1は通常関数の識別子としては再利用できません。 PHPの制限だと思って、他の方法を考えるしかないと思います。

noname#9903
質問者

お礼

やっぱり 無理ですか。 どうしても普通の場所に宣言したくなかったので・・・ global変数使いたくなかったのですが メモリの無駄になったり、わけわからなくなるので あまりやりたくないのですが 一時的な作業用の変数を func1で global で宣言追加してそこにコピーして func1_1もglobal で宣言いれて 共通の変数で アクセスして結果作るようにしました。 70行程度で簡易テンプレートクラス作っていたもので とりあえず、置換する部分までできました あとは、読み込み関数LoadFromFileを classにくっつけたら完成です。 お返事ありがとうございました。

関連するQ&A