- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:requireの評価順について)
requireの評価順について
このQ&Aのポイント
- class2をインスタンス化する際に親のclass1が無いというエラーが発生する
- requireを記述した位置で評価されないため、class2.phpの冒頭でrequireしてもエラーが発生する
- class2を定義する前にインスタンス化すると正常に動作するが、その理屈は不明
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ちなみにclass2.phpを変更して、class2の定義より後でclass2をインスタンス化すると正常に動作します。 すみません、質問をよく見てませんでした。 <?php class class1 {} $obj=new class2(); class class2 extends class1 {} ?> これもエラー出ないようですね なぜでしょう。
その他の回答 (1)
- php504
- ベストアンサー率42% (926/2160)
回答No.1
classの宣言を先にしたらどうでしょう ファイル:class2.php <?php require_once('class1.php'); class class2 extends class1 {} $obj=new class2(); ?>
お礼
ありがとうございます。 requireの代わりに記述するパターンは試していませんでした。 これでエラーが出ないというのも、ますます納得がいきませんね。 とりあえず直面しているソースについては記述方法を変えれば動作させることはできるのですが、なんか自分の気持ち的にスッキリしなくて…