Variable in Array

Actros

Grünschnabel
Tag.

Ich habe ein kleines Problem.
Ich möchte meine Seite mit meheren Variabeln schmücken, dafür habe ich mich für die array() möglichkeit entschieden, nicht für die per mySQL.

Das Problem welches ich nun habe ist folgendes:
Code:
<?php
$language = array(
	"welcome" => "Welcome $username",
	"rank" => "Rank: $rank",
?>

Die Variabeln "$username" und "$rank" werden nicht über
"$language[welcome]" und "$language[rank]"
Die beiden Variabeln wurden per abfrage aus einer Datenbank bezogen und sind garantiert gefüllt.

Bewiesen habe ich es mir via:
Code:
echo $language[welcome]; echo $name;

Hat da evtl. jemand eine Idee?
Ich hab ne lange Zeit nun gegoogelt und habe nichts gefunden bis auf dieses Forum hier.

Lg.
Actros
 
Tag,

wahrscheinlich definierst du das Arrray vor der SQL-Abfrage, sodass $username und $rank noch undefiniert sind.

Du könntest es z.B. so lösen, dass du Platzhalter einfügst und per [phpf]printf[/phpf] oder [phpf]sprintf[/phpf] ersetzt:
PHP:
<?php
$language = array(
    'welcome' => 'Welcome %1s, your real name is "%2s"',
    'rank' => 'Rank: $rank');


printf($language['welcome'], 'Actros', 'Bill Gates');

?>
Allerdings müsstest du darauf achten, dass der Username immer "%1s" ist, also das zweite Argument von [phpf]printf[/phpf].
Ansonsten könnte es bei anderen Sprachen bei Satzumstellungen zu Fehlern kommen. Deshalb immer den Index des Arguments angeben: %1s, %2s.
 
Ansich eine nette idee auch wenn die umsetzung auf mein ganzes Script lange dauern würde.

Allerdings zeigt sich hier ein Problem.
Der Username ist Variable, jeder User der sich einloggt sieht natürlich seinen eigenen.
Nicht "Actros" und "Bill Gates"

Wenn ich diese Namen durch eine Variable ersetze "$var" wird nur die Variable angezeigt jedoch nicht sein Inhalt.

So wird aus

Code:
<?php
$language = array(
    'welcome' => 'Welcome %1s',
    'rank' => 'Rank: $rank');


printf($language['welcome'], '$row[username]');

?>

Code:
Welcome $row[username]
 
Wenn du etwas in einfache Hochkommas einschließt ist es ein String und keine Variable. Entferne einfach die ' und deine Variable wird entsprechend verarbeitet.
 
Zurück