Değişken mümkün dahilinde Değişken?

6 Cevap php

Ben kodumu bazıları için bir döngü deyimi oluşturmak için çalışıyorum ve başka bir değişken içerisindeki bir değişken koymak nasıl merak ediyorum.

For example:

<?php 
$j=1;
while ($j <= 9): {

$f$jfname = $_SESSION['F$jFirstName'];
$f$jmi = $_SESSION['F$jMI'];
$f$jlname = $_SESSION['F$jLastName'];
}
 $j++; endwhile; 
?>

Amaç döngü sırasında j değişken artış var ve değerleri olarak değiştirmek için burada:

$ F1fname $ f2fname $ f3fname

ve benzerleri.

Herhangi bir fikir?

EDIT

Evet benim İLK formu ben bilgi yakalanan şekilde kusurlu olduğunu farkındayım (bireysel değişkenler olarak Dizilere karşıt olarak) bu yüzden bana OTURUMU söylüyorum herhangi bir cevap bir dizidir ve bu yüzden ben OTURUM itibaren örtük olarak herhangi değişkenleri diyemezsin çünkü alakasız Ben (line referans bir çizgi olmadan) oluşturulan değişkenler OTURUM depolanan tüm değişken tamamen özgün ve birbirinden bağımsızdır.

6 Cevap

Kodunu kendimi sınamak ama belki gibi bir şey değil mi:

<?php 
$names = array();
for ($j=1; $j <= 9; $j++) {
   if (! isset($names[$j]))
     $names[$j] = array();
   $names[$j]['fname'] = $_SESSION["F{$j}FirstName"];
   $names[$j]['mi'] = $_SESSION["F{$j}MI"];
   $names[$j]['lname'] = $_SESSION["F{$j}LastName"];
}
?>

Sonra Userınfo dizileri ile bir dizi var

Eğer bu ihtiyaç neden ben bilmiyorum, ama ben bunu düşündüm ve gerçekten bunu istiyorsanız, sadece yazmak zorunda

$varname = "f".$j."fname"; 
$$varname = ...

yerine

$f$jfname = ...

Oh, ben şimdi olsun düşünüyorum, bekle.

Nasıl biz sadece içeren bir dizi var dersiniz? Değişken değişkenler yeterince dağınık, değil mi?

<?php
$f = array();
for($j = 1; $j <= 9; $j++) {
  $f[$j] = array();
  $f[$j]['fname'] = $_SESSION['F' . $j. 'FirstName'];
  // etc.
}
?>

ne diziler hakkında? Daha fazla: nesne dizileri?

php alışkanlık, 'tek tırnak içinde değişken ayrıştırmak çift tırnak kullanmak "ve bu formatı deneyin ...

${'f'.$j.'fname'} = $_SESSION["F$jFirstName"];

Aşağıdaki gibi referanslara onun adı verilen, bir değişken, bunu yapabilirsiniz:

  • Doğrudan:

    $result=$myVar;
    
  • String:

    $result="$myVar";
    
  • Değişken Gönderen:

    $a='myVar';
    $result=$$a;
    

Ve kod ....

    // preferred way
    $results=array();
    for ($j=1; $j<=9; $j++) {
        $result=array();
        $result['jfname'] = $_SESSION['f'.$j.'FirstName'];
        $result['jmi'] = $_SESSION['f'.$j.'MI'];
        $result['lname'] = $_SESSION['f'.$j.'LastName'];
        $results[$j]=$result;
    }

Bu arada,

$_SESSION['f'.$j.'LastName'];

Olarak aynı mı

$_SESSION["f{$j}LastName"];