0
私はロギング機能でこれを持ってPHPは未定義のインデックスを返しますが、そのインデックスのデータを返すのはなぜですか?
$e = new Exception();
$stack = $e -> getTrace();
$exclude = 'foo.php';
while (isset ($stack [0])
&& ($exclude === substr ($stack [0] ['file'], -strlen($exclude))
|| 'error_handler' === $stack [0] ['function']))
{
array_shift ($stack);
}
時には、これが与える
Undefined index: file in bar.php on line 84
何奇妙なのは、私は任意の時点で$stack[0]
の内容をプリントアウトした場合、その配列内のfile
インデックスがあるということです。
私は、while条件で
isset ($stack [0] ['file'])
を追加することによって、このエラーを回避することができますが、それは論理的に冗長である - file
は常に$stack[0]
で存在ですが、私はこれを手動で確認しました。さらに、ループ内に$stack[0]['file']
(shift
の後)を印刷すると、Undefined index
という警告が表示され、はそのインデックスのデータを印刷します。
どうしたらいいですか?
あなたの質問に模擬データが含まれていて '$ stack'を初期化するのに役立つでしょう。 – Quentin
あなたは私達に[mcve]を与える必要があります – Rizier123
@arkaschaブラケットの間の空白は[完全に許容できます](https://3v4l.org/S510W)です。 – bishop