Pengubahsuaian mekanisme pemprosesan parameter
1. Penamaan parameter pendua tidak lagi disokong.
Penamaan parameter pendua tidak lagi disokong. Sebagai contoh, kod berikut akan melaporkan ralat apabila dilaksanakan:
public function foo($a, $b, $unused, $unused) { // ... }Nota editor: Tiada siapa yang harus menggunakannya seperti ini.
2 Pelarasan kepada kaedah func_get_arg dan func_get_args()
func_get_arg() dan func_get_args() mengembalikan nilai semasa parameter, bukan nilai apabila dihantar masuk. Nilai semasa boleh diubah suai
function foo($x) { $x++; var_dump(func_get_arg(0)); } foo(1);Kod di atas akan mencetak 2 bukannya 1. Jika anda ingin mencetak nilai asal, laraskan sahaja susunan panggilan.
3 Apabila mencetak maklumat jejak balik pengecualian, nilai yang diubah suai juga dipaparkan.
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}Pelarasan ini tidak akan menjejaskan kelakuan kod, tetapi anda perlu memberi perhatian kepada perubahan ini semasa menyahpepijat.
Fungsi lain yang berkaitan dengan parameter tertakluk kepada pelarasan yang sama, seperti debug_backtrace().