次のコード (PHP 5.4.4-10、Debian テスト):
<?php
$a = 0;
$b;
echo '$a: ' . $a . PHP_EOL;
echo '$b: ' . $b . PHP_EOL;
次の出力が得られます。
$ php teste.php $a: 0 PHP Notice: 未定義変数: b in /tmp/teste.php 行 5 PHP スタック トレース: PHP 1. {main}() /tmp/teste.php:0
注意: 未定義の変数: 5 行目の /tmp/teste.php の b
コール スタック: 0.0002 221952 1. {main}() /tmp/teste.php:0
$b:
$b は $a の後に定義されています。なぜ未定義と見なされるのですか?バグですか?