Saya mencoba menggunakan nama variabel dinamis (Saya tidak yakin apa nama sebenarnya) Tapi seperti ini:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
Kembalinya null
yang memberitahu saya itu tidak berfungsi. Saya tidak tahu apa sintaks atau teknik yang saya cari di sini, yang membuatnya sulit untuk diteliti. $filelist
didefinisikan sebelumnya pada.
php
variables
dynamic
dynamic-variables
pengguna1159454
sumber
sumber
Jawaban:
Bungkus mereka dalam
{}
:Contoh Kerja
Menggunakan
${}
adalah cara untuk membuat variabel dinamis, contoh sederhana:sumber
${'fixedTime$i'} = $row['timeInstance'];
memberi Anda yang tidak terlalu berguna,$fixedTime$i
bukan$fixedTime1, $fixedTime2
dll. (Untungnya melihatnya hampir langsung.)Gambaran
Di PHP, Anda bisa meletakkan tambahan
$
di depan variabel untuk menjadikannya variabel dinamis:Meskipun saya tidak akan merekomendasikannya, Anda bahkan dapat mengaitkan perilaku ini:
Anda bisa tetapi tidak dipaksa untuk menempatkan
$variableName
antara{}
:Penggunaan
{}
hanya wajib ketika nama variabel Anda sendiri merupakan komposisi beberapa nilai, seperti ini: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']
${$foo['bar']['baz']}
${$foo}['bar']['baz']
Kasus 2:
$foo->$bar['baz']
$foo->{$bar['baz']}
$foo->{$bar}['baz']
Kasus 3:
$foo->$bar['baz']()
$foo->{$bar['baz']}()
$foo->{$bar}['baz']()
Kasus 4:
Foo::$bar['baz']()
Foo::{$bar['baz']}()
Foo::{$bar}['baz']()
sumber
Coba gunakan
{}
alih-alih()
:sumber
$price_for_monday = 10; $price_for_tuesday = 20; $today = 'tuesday'; $price_for_today = ${ 'price_for_' . $today}; echo $price_for_today; // will return 20
Saya melakukan ini cukup sering pada hasil yang dikembalikan dari permintaan ..
misalnya
Sekarang saya bisa menggunakan $ MyFieldname (yang lebih mudah dalam pernyataan echo dll) daripada $ MyQueryResult ['MyFieldname']
Ya, mungkin malas, tapi saya tidak pernah punya masalah.
sumber
Tom jika Anda memiliki array yang sudah ada, Anda bisa mengonversi array itu menjadi objek dan menggunakannya seperti ini:
sumber
saya punya solusi untuk nilai variabel yang dibuat secara dinamis dan menggabungkan semua nilai dalam suatu variabel.
sumber
Saya berada di posisi di mana saya memiliki 6 array identik dan saya harus memilih yang tepat tergantung pada variabel lain dan kemudian menetapkan nilai untuk itu. Dalam kasus yang ditampilkan di sini $ comp_cat adalah 'a' jadi saya harus memilih array 'a' saya (saya juga tentu saja memiliki array 'b' ke 'f')
Perhatikan bahwa nilai-nilai untuk posisi variabel dalam array pergi setelah kurung kurawal.
sumber
Coba gunakan {} alih-alih ():
sumber