Perbezaan antara PHP5 dan PHP7 dalam mendapatkan elemen tatasusunan sebagai nama fungsi dinamik
Apabila melaksanakan fungsi/kaedah melalui pembolehubah dalam PHP5 dan PHP7, mungkin terdapat perbezaan disebabkan perbezaan versi Tidak konsisten strategi tafsiran menghalang kod yang sama daripada dijalankan.
Contoh
$a = ['add', 'sub']; class Test { public function add() { echo 1 + 2; } } $t = new Test(); $t->$a[0]();
Contoh di atas boleh dijalankan secara normal di bawah PHP5.6, tetapi di bawah PHP7 ia akan membuang ralat Fatal: Nama fungsi mestilah rentetan. Ini kerana apabila melaksanakan t->t−>a0 di bawah PHP5, $a[0] akan dilaksanakan terlebih dahulu, nilai elemen akan diperoleh, dan kemudian kaedah khusus objek akan dilaksanakan.
Di bawah PHP7, t->t−>a akan dilaksanakan terlebih dahulu, menyebabkan ralat dilemparkan dan pelaksanaan terganggu. Jika anda perlu melaksanakannya seperti biasa di bawah PHP7, anda perlu mengubah suainya kepada t->{a[0]}().
Untuk perbezaan khusus, sila rujuk:
Pembelajaran yang disyorkan: "Tutorial PHP7"
Atas ialah kandungan terperinci Perbezaan antara PHP5 dan PHP7 mengenai mendapatkan fungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!