PHP 5.4 で Apache 2.4 を使用しています。
私は以下を実行しています:
# retrieve caller name
$calledby = debug_backtrace(); print_r($calledby);
$caller = (strlen($calledby[1]['class'])) ? $calledby[1]['class'] : $calledby[0]['class'];
# arguments are required
if (!func_num_args()) { return; }
# fill variables with argument contents if exists
$variables = (func_num_args() == 0) ? NULL : (is_array(func_get_arg(0)) ? func_get_arg(0) : NULL);
クラスのプライベート メソッド内から。
$caller = と $variables = 行をコメントアウトすると、機能します。
コードを次のように変更すると、それも機能します (AS DEFINED)
if (strlen($calledby[1]['class'])) $caller = $calledby[1]['class'];
else $caller = $calledby[0]['class'];
バグ レポートを提出する必要がありますか?それとも、新しい 5.4 構文の癖で何か間違ったことをしていますか?
前もって感謝します!
[更新] CLI を使用してファイルを実行すると、スクリプトが目的の結果を生成しました。