Rumah  >  Soal Jawab  >  teks badan

Menggunakan pendakap dengan nama pembolehubah dinamik dalam PHP

<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粉717595985P粉717595985440 hari yang lalu465

membalas semua(2)saya akan balas

  • P粉588660399

    P粉5886603992023-08-30 10:02:10

    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']()

    balas
    0
  • P粉043295337

    P粉0432953372023-08-30 09:41:31

    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

    balas
    0
  • Batalbalas