パラメータ処理機構の変更
1. 重複したパラメーターの名前付けはサポートされなくなりました。
重複したパラメータの名前付けはサポートされなくなりました。たとえば、次のコードを実行すると、エラーが報告されます。
public function foo($a, $b, $unused, $unused) { // ... }編集者注: このような使用はしないでください。
2. func_get_arg と func_get_args() の調整
2 つのメソッド func_get_arg() と func_get_args() は、渡されたときの値ではなく、パラメーターの現在の値を返します。現在の値は変更される可能性があります。
function foo($x) { $x++; var_dump(func_get_arg(0)); } foo(1);上記のコードでは、1 ではなく 2 が出力されます。元の値を出力したい場合は、呼び出しの順序を調整するだけです。
3. 変更された値は、例外トレースバック情報を出力するときにも表示されます。
function foo($x) { $x = 42; throw new Exception; } foo("string"); PHP7的运行结果:Stack trace: #0 file.php(4): foo(42) #1 {main} PHP5的运行结果:Stack trace: #0 file.php(4): foo('string') #1 {main}この調整はコードの動作には影響しませんが、デバッグ時にはこの変更に注意する必要があります。
debug_backtrace() など、パラメータに関連する他の関数も同様の調整の対象となります。