Neden PHP Ben bu küçük kod bahsediyorum değişken bulmak değil mi?

4 Cevap

Neden bu kod ile 'tanımsız değişken $ image_src' alabilirim:

$image_src1=null;
$image_src2=null;
for ($i=1; $i<=$nr_of_pics; $i++) {
    	$image_src.$i = $image_id.'_'.$i;
    	}

    echo $image_src1;

Ben istiyorum $image_src.$i değişkeni $image_src1 veya $image_src2 vardır kaç döngüler bağlı olarak bakın ... Ama bu değişken {[(bulmak istiyor Ben '$ i' biten değişken bulmak istiyorum çünkü 3)]} bitiş sayılı olmadan, hangi yok!

Bu $i değişkeni $image_src isim de son sayısı için olduğunu almaz!

Kodun geri kalanı gayet iyi!

Teşekkürler

4 Cevap

Bunu değiştirin:

${'image_src' . $i} = $image_id . '_' . $i;

ya da bu şekilde yapabilirsiniz:

$var = 'image_src' . $i;
$$var = $image_id . '_' . $i;

PHP manuel variable variables bakın.

Edit: Ben soru çünkü her zaman bu diziler kullanabilirsiniz tabii ki sorunun basitleştirilmiş bir örnek olduğunu varsayarak yaşıyorum:

$image_src = array();
for ($i=1; $i<=2; $i++) {
  $image_src[$i] = $image_id . '_' . $i;
}
echo $image_src[1];

hangi böyle bir şey için değişken değişkenler daha mantıklı.

Diğerleri doğru ile cevap olsa ${"image_src$i"}, isterdim Ayrıca arrays başarmak için çalışıyoruz ne için kullanmak tavsiye

$image_src = array();
for ($i = 1; $i <= $nr_of_pics; $i++) {
	$image_src[$i] = $image_id.'_'.$i;
}

echo $image_src[1];

Bu gibi atıfta deneyin:

${"image_src$i"} = $image_id.'_'.$i;

ya da okunabilmesi için (çok iyi olmasa bile):

$name = "image_src".$i;
$$name = $image_id.'_'.$i;

Bu sözdizimi kullanmanız gerekir,

    ${'image_src'.$i} = $image_id.'_'.$i;