Menggunakan pendakap dengan nama pembolehubah dinamik dalam PHP
P粉717595985
P粉717595985 2023-08-29 12:05:01
0
2
462
<p>Saya cuba menggunakan nama pembolehubah dinamik (saya tidak pasti apa nama sebenarnya), tetapi sesuatu seperti ini: </p> <pre class="brush:php;toolbar:false;">for($i=0; $i<=2; $i++) { $("fail" . $i) = fail($senarai fail[$i]); } var_dump($file0);</pre> <p>mengembalikan <kod>null</kod>, yang memberitahu saya ia tidak berfungsi. Saya tidak tahu sintaks atau teknologi apa yang saya cari, yang menyukarkan penyelidikan. <kod>$filelist</code> </p>
P粉717595985
P粉717595985

membalas semua(2)
P粉588660399

Gambaran keseluruhan

Dalam PHP, anda hanya menambah tambahan $ di hadapan pembolehubah untuk menjadikannya dinamik:

$$variableName = $value;

Walaupun saya tidak mengesyorkan ini, anda juga boleh memautkan tingkah laku ini:

$$$$$$$$DoNotTryThisAtHomeKids = $value;

Anda boleh tetapi tidak perlu meletakkan $variableName 放在 {} antara:

${$variableName} = $value;

Penggunaan {} hanya dipaksa apabila nama pembolehubah itu sendiri adalah gabungan beberapa nilai, seperti ini:

${$variableNamePart1 . $variableNamePart2} = $value;

Walau bagaimanapun, adalah disyorkan untuk sentiasa menggunakan {} kerana ia lebih mudah dibaca.

Perbezaan antara PHP5 dan PHP7

Sebab lain untuk sentiasa menggunakan {} ialah PHP5 dan PHP7 mengendalikan pembolehubah dinamik sedikit berbeza, yang boleh membawa kepada hasil yang berbeza dalam beberapa kes.

Dalam PHP7, pembolehubah dinamik, sifat dan kaedah kini akan dinilai dengan ketat dari kiri ke kanan, bukannya kes khas bercampur dalam PHP5. Contoh berikut menunjukkan bagaimana susunan penilaian berubah.

Situasi 1:$$foo['bar']['baz']

  • Penjelasan PHP5:${$foo['bar']['baz']}
  • Penjelasan PHP7:${$foo}['bar']['baz']

Senario 2:$foo->$bar['baz']

  • Penjelasan PHP5:$foo->{$bar['baz']}
  • Penjelasan PHP7:$foo->{$bar}['baz']

Senario 3:$foo->$bar['baz']()

  • Penjelasan PHP5:$foo->{$bar['baz']}()
  • Penjelasan PHP7:$foo->{$bar}['baz']()

Situasi 4:Foo::$bar['baz']()

  • Penjelasan PHP5:Foo::{$bar['baz']}()
  • Penjelasan PHP7:Foo::{$bar}['baz']()
P粉043295337

Balutkan {}:

${"file" . $i} = file($filelist[$i]);

Contoh kerja


Menggunakan ${} ialah cara untuk mencipta pembolehubah dinamik, contoh mudah:

${'a' . 'b'} = 'hello there';
echo $ab; // hello there
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!