2010-12-31 14 views
2

Ich habe ein Stück Code, der wie folgt aussieht:Php-Variable in einer Variablen

$result = mysql_query($queryc) or die(mysql_error()); 

if(mysql_num_rows($result) > 0)        
{ 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
    echo $row['$field']; 
    } 
} 

Sagen Sie, dass Code war in einer Funktion, und ich wollte $ Feld an die $ row passieren [ ‚‘] wie würde Ich erreiche das?

Mit anderen Worten versuche ich $ row ['$ field']; und $ Feld definiert ist anderswo

+1

entfernen Zitate aus '$ Feld' '$ row [$ Bereich]' – jondavidjohn

Antwort

4

nehme an, Sie diese Funktion Definition haben:

function foo($field) { 
    // from that code you have given 
    .... 
    echo $row[$field]; // no need of the quotation marks around $field 
    .... 
} 
+0

lustige Sache ist, habe ich versucht, es ohne die Zitate zu tun, aber ich sah die falsche Ausgabe die ganze Zeit. Vielen Dank! – MSD

4

Sie würden keine Anführungszeichen um $field ... wie folgt aus:

echo $row[$field]; 
3

Einfache Anführungszeichen hemmen Variablensubstitution.

echo $row["$field"]; 

oder nur

echo $row[$field]; 

Letzteres ist sehr zu empfehlen, da es nicht PHP benötigt $row["$field"] in $row[$field] zu analysieren. Spart Ihnen in jeder Iteration etwas Mikrozeit.

+0

@thephpdeveloper: Gib mir 100 Entwickler, die ziehe das letztere vor und ich gebe dir 100, die das erste bevorzugen. Diese Änderung war nutzlos, da der OP selbst entscheiden kann, welche Lösung ihm gefällt und ob eine Mikrooptimierung erforderlich ist oder nicht. –

+0

'$ row [" $ field "]' stellt sicher, dass Ihr Schlüsselwert eine Zeichenkette ist. Aber wenn Sie '$ row [" $ field "]' verwenden, schreiben Sie bitte als '$ row [" {$ field} "]' als Standard. Ein anderes Beispiel: "Mein Name ist {$ name} und ich bin {$ age} Jahre alt." ' –

+1

@Fake Code Monkey Rashid, gib mir 100 Entwickler, die' $ row ["$ field"] 'bevorzugen. Ich würde ernsthaft bezweifeln, dass du sie finden würdest. Das ist nicht wirklich eine Vorliebe. Ohne Anführungszeichen ist es aus drei Gründen viel besser: 1. weniger Code zum Schreiben. 2. weniger Verarbeitung 3. weniger Code zu verstehen oder möglicherweise falsch zu interpretieren. Würden Sie jemals '$ a =" $ b ";'? Wenn nicht, warum würdest du jemals '$ row [" $ field "] schreiben;'? –

3

Variablen werden nicht in einfache Anführungszeichen erweitert; Sie sind nur expanded in double quotes or in the heredoc syntax:

Wenn eine Zeichenfolge in doppelten Anführungszeichen oder mit heredoc angegeben wird, werden Variablen darin analysiert.

Also entweder doppelte Anführungszeichen oder, noch besser, einfach auslassen:

$row[$field] 
Verwandte Themen