Menggunakan pendakap dengan nama pembolehubah dinamik dalam PHP
P粉717595985
2023-08-29 12:05:01
<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>
Gambaran keseluruhan
Dalam PHP, anda hanya menambah tambahan
$
di hadapan pembolehubah untuk menjadikannya dinamik:Walaupun saya tidak mengesyorkan ini, anda juga boleh memautkan tingkah laku ini:
Anda boleh tetapi tidak perlu meletakkan
$variableName
放在{}
antara:Penggunaan
{}
hanya dipaksa apabila nama pembolehubah itu sendiri adalah gabungan beberapa nilai, seperti ini: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']
${$foo['bar']['baz']}
${$foo}['bar']['baz']
Senario 2:
$foo->$bar['baz']
$foo->{$bar['baz']}
$foo->{$bar}['baz']
Senario 3:
$foo->$bar['baz']()
$foo->{$bar['baz']}()
$foo->{$bar}['baz']()
Situasi 4:
Foo::$bar['baz']()
Foo::{$bar['baz']}()
Foo::{$bar}['baz']()
Balutkan
{}
:Contoh kerja
Menggunakan
${}
ialah cara untuk mencipta pembolehubah dinamik, contoh mudah: