【PHP】下らねぇ質問 ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
72:nobodyさん 09/03/10 15:24:38 >>69 >>1 73:nobodyさん 09/03/10 16:02:30 >>70が言いたいのはこの現象だろう 1: class C extends B {} // 1: をコメントアウトすると動く 2: class B extends A {} 3: class A {} コンパイル時、 C は未定義のクラス B を参照しているので解決を保留する B もまた同様に保留され、A のみ定義した時点で終端に達しそのまま打ち切る そして実行時に入って再度 C>B を解決しようとするが B が未定義のままなので Class 'B' not found になる 1: をコメントアウトした場合は、B は A しか参照していないので実行時に解決できエラーも出ない ただ組み込みクラス、インターフェイスによって実行前解決が出来る出来ないの違いが出る理由は分からない ソースを追いかけられる人に任せる var_dump(class_exists('Klass', false)); // false var_dump(interface_exists('IA', false)); // true var_dump(interface_exists('IB', false)); // false interface IA {} // 実行前に解決 eval('interface IB {}'); // 実行時に解決 class Klass implements IA, IB {} // 未解決の IB があるので実行時まで解決を遅らせる var_dump(class_exists('Klass', false)); // true var_dump(interface_exists('IA', false)); // true var_dump(interface_exists('IB', false)); // true
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4737日前に更新/244 KB
担当:undef