PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ PHP ] - print $GLOBALS['xy[z]']; soll gehen ^^



d@tenmaulwurf
30-05-2004, 22:16
$xy[z]="blablabla...";


print $GLOBALS['xy[z]'];


das ganze funzt so jetzt leider nicht

-------

Das gleiche In Form von:

$xyz="blablabla...";


print $GLOBALS['xyz'];


funzt perfekt - also kann es nur daran liegen... achja - und "dann mach es doch so!" kann ich als Post grad gar nicht brauchen

THX im voraus,

d@tenmaulwurf

Gaert
30-05-2004, 22:29
Kurz und knapp:
print $GLOBALS['xy']['z'];

Gaert
03-06-2004, 12:45
Original geschrieben von Claudine
Geht auch ohne Hochkomma. (in diesem Fall)
print $GLOBALS[xy][z];
Geht, ist aber (wie bei vielem, was bei PHP geht) nicht empfehlenswert... wenn du xy oder z als Konstanten definiert hast geht die Sache nämlich in die Grütze!

Siehe auch hier: http://de2.php.net/manual/de/language.types.array.php -> Array do's und don'ts

Gaert
03-06-2004, 16:09
Da hast du dir auch ein schlechtes Beispiel ausgedacht!

Was ist damit?



<?php
define(XY,'abc');
$beispiel[XY] = "abc";
$beispiel['XY'] = "XY";

if ($beispiel[XY] <> $beispiel['XY']) {
echo "Tja, dumm gelaufen!<br/> Das ging voll in die (rote) Grütze!";
}
?>

Soviel zum Thema $array[xy] und $array['xy'] ist das selbe!

mehlvogel
03-06-2004, 16:48
Weil in deiner Konstante, die Konstante selber drin steht

NAME => 'name'

würde es so aussehen

NAME => 'Willi'

und du würdest das hier probieren:

$_array[NAME] == $_array['name']

Tja, dann isset dumm gelaufen...

Gaert
03-06-2004, 17:30
Was ich Programmiert habe?

Ich habe den Beweis erbracht, dass $array[xy] nicht zwangsweise das gleiche Element anspricht wie $array['xy'] und es deshalb (auch laut PHP Manual) empfohlen wird Array Indizes immer explizit in Hochkommas zu schreiben.

Gaert
04-06-2004, 00:51
Ich vergleiche Strings - tut aber nichts zur Sache...

<> und != bedeuten beide "ungleich" und sind daher äquivalent und typunabhängig!

http://www.php.net/manual/de/language.operators.comparison.php