Rumah >pembangunan bahagian belakang >PHP7 >Perbezaan antara PHP5 dan PHP7 mengenai mendapatkan fungsi

Perbezaan antara PHP5 dan PHP7 mengenai mendapatkan fungsi

藏色散人
藏色散人ke hadapan
2021-10-28 16:21:321838semak imbas

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:

Perbezaan antara PHP5 dan PHP7 mengenai mendapatkan fungsi

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!

Kenyataan:
Artikel ini dikembalikan pada:juejin.im. Jika ada pelanggaran, sila hubungi admin@php.cn Padam