状況について不平を言いますbar.php:PHP/Zendのは、未定義の変数
<?php
echo $x;
?>
Zendの予告:未定義の変数:グローバル$ xを置くX
。 bar.phpで通知を取り除いていますが、なぜこれについての通知が最初にあるのか理解しています.Cヘッダを含むような作業はほとんど含まれていませんか?これは、解釈されるコードが次のようになることを意味します。
<?php
function foo($p) {
include_once($p); // please dont mind the inclusion hole
}
$x = 42;
// this however, is included by a function...
// does the function's scope influence the stuff it includes?
echo $x; // undefined variable
?>
私のエディタはEclipse/Zendパッケージです。
私はあなたが正しいと信じるように導いています。グローバルな$ x; foo()関数の内部では、noticesエラーも修正されます。私はこれについてのドキュメンテーションのページを見ることに興味があり、なぜPHPはまだコードをうまく実行して管理しているのかを知ることができます。 –
エラーが発生しない理由は簡単です。宣言されていない変数を使用することは、PHPではエラーではありません。常に警告を出して実行を続行します。だから私はいつも私自身のエラーハンドラを宣言し、すべてのエラー/警告/通知について例外をスローする方が好きです。とにかく、良いコードでそれらを生成すべきではありません。 – soulmerge