參數處理機制修改
一、重複參數命名不再支援。
重複的參數命名不再支援。例如下面的程式碼執行的時候會報錯:
public function foo($a, $b, $unused, $unused) { // ... }編者按:應該沒有人這樣用吧。
二、func_get_arg和func_get_args()調整
func_get_arg()和func_get_args()這兩個方法傳回參數目前的值,而不是傳入時的值。目前的值有可能會被修改
function foo($x) { $x++; var_dump(func_get_arg(0)); } foo(1);上面的程式碼會列印2, 而不是1。如果想列印原始的值,呼叫的順序調整下即可。
三、同樣在列印異常回溯訊息的時候也是顯示修改後的值。
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() .