Gambaran
Di PHP, Anda bisa meletakkan tambahan $
di depan variabel untuk menjadikannya variabel dinamis:
$$variableName = $value;
Meskipun saya tidak akan merekomendasikannya, Anda bahkan dapat mengaitkan perilaku ini:
$$$$$$$$DoNotTryThisAtHomeKids = $value;
Anda bisa tetapi tidak dipaksa untuk menempatkan $variableName
antara {}
:
${$variableName} = $value;
Penggunaan {}
hanya wajib ketika nama variabel Anda sendiri merupakan komposisi beberapa nilai, seperti ini:
${$variableNamePart1 . $variableNamePart2} = $value;
Meskipun demikian disarankan untuk selalu menggunakan {}
, karena lebih mudah dibaca.
Perbedaan antara PHP5 dan PHP7
Alasan lain untuk selalu menggunakan {}
, adalah bahwa PHP5 dan PHP7 memiliki cara yang sedikit berbeda dalam berurusan dengan variabel dinamis, yang menghasilkan hasil yang berbeda dalam beberapa kasus.
Dalam PHP7, variabel dinamis, properti, dan metode sekarang akan dievaluasi secara ketat dalam urutan kiri-ke-kanan, yang bertentangan dengan campuran kasus khusus di PHP5. Contoh di bawah ini menunjukkan bagaimana urutan evaluasi telah berubah.
Kasus 1 : $$foo['bar']['baz']
- PHP5 interpetation:
${$foo['bar']['baz']}
- PHP7 interpetation:
${$foo}['bar']['baz']
Kasus 2: $foo->$bar['baz']
- PHP5 interpetation:
$foo->{$bar['baz']}
- PHP7 interpetation:
$foo->{$bar}['baz']
Kasus 3: $foo->$bar['baz']()
- PHP5 interpetation:
$foo->{$bar['baz']}()
- PHP7 interpetation:
$foo->{$bar}['baz']()
Kasus 4: Foo::$bar['baz']()
- PHP5 interpetation:
Foo::{$bar['baz']}()
- PHP7 interpetation:
Foo::{$bar}['baz']()