elegantere zuweisung?
bleicher
- php
Grüße,
suche eben ein weg einer Variable den wert einer $_GET variable zuzuweisen oder diese auf 0 zu setzen.
beim hin un herprobieren stieß ich auf
if($x=$_GET['y'] OR $x="0"){
..
}
echo $x gab Array zurück.. was habe ich da eben gebastelt? denn
echo $x[0]; gibt ebenfalls trockenes "Array"
MFG
bleicher
hallo,
if($x=$_GET['y'] OR $x="0"){
..
}
echo $x gab Array zurück.. was habe ich da eben gebastelt?
Das kannst vorerst nur du genauer wissen. Ein klein bißchen mehr Code ist vermutlich nötig, und auch die "Idee", die du verfolgst. Was soll denn dein Code tun? Wie sicher ist es, daß du wirklich als GET nur den Buchstaben "y" bekommst? In sehr vielen Fällen enthält GET tatsächlich einen Array.
Grüße aus Berlin
Christoph S.
beim hin un herprobieren stieß ich auf
if($x=$_GET['y'] OR $x="0"){
..
}echo $x gab Array zurück.. was habe ich da eben gebastelt? denn
echo $x[0]; gibt ebenfalls trockenes "Array"
MFG
bleicher
Guten Morgen!
suche eben ein weg einer Variable den wert einer $_GET variable zuzuweisen oder diese auf 0 zu setzen.
Das verstehe ich folgendermaßen:
$x = (empty($_GET['y'])) ? 0 : $_GET['y'];
Ich hoffe, das ist es, was Du meinst.
Lieben Gruß
zettelbox
(Hallo|Hi(ho)|Tag) bleicher,
Grüße,
suche eben ein weg einer Variable den wert einer $_GET variable zuzuweisen oder diese auf 0 zu setzen.
In welchem Fall soll denn die Zuweisung hinter dem ODER zutreffen?
Üblicherweise prüft man das Vorhandensein eines brauchbaren Eintrages
im $_GET-Array mit isset() oder empty(). Einigermaßen "elegant" würde
ich das mit dem Konditionaloperator lösen:
$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];
Denn bei "OR" müsste ich immer erst im PHP-Handbuch nachschauen, welche
Rangfolge der Operator gegenüber den anderen hat. Oder ich würde mehr
Klammern setzen, um sicher zu gehen -- was nun gerade nicht sehr elegant
ist.
beim hin un herprobieren stieß ich auf
if($x=$_GET['y'] OR $x="0"){
..
}
echo $x gab Array zurück.. was habe ich da eben gebastelt? denn
echo $x[0]; gibt ebenfalls trockenes "Array"
Nur wenn $_GET['y'] selbst ein Array ist, sollte auch $x eines werden.
Das passiert aber beispielsweise, wenn dem Script per URL sowas wie
"?y[]=bla" per GET übergeben wird.
Du kennst aber sicher die heilsame Wirkung von var_dump() oder print_r()?
Damit kannst du dir auch die Inhalte des Arrays ansehen und erfährst so
eher, um welche Art von Array es sich da handelt. ;-)
MffG
EisFuX
Grüße,
$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];
oops.. die (? "0") sagen mir nix.. im welchem php.net abteil habe ich das nachzuschlagen/wie nennt sich das?
(srry n000000b :()
MFG
bleicher
(Hallo|Hi(ho)|Tag) bleicher,
Grüße,
$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];
oops.. die (? "0") sagen mir nix.. im welchem php.net abteil habe ich das nachzuschlagen/wie nennt sich das?
Konditionaloperator, im PHP-Handbuch heißt er ternärer Operator, wird dort
aber etwas stiefmütterlich behandelt.
Er ersetzt eine einfache if-else-Sequenz mit Zuweisung zu einer Variablen.
Aus "$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];" wird
if ( empty( $_GET['y'] ) ) {
$x = "0;
}
else {
$x = $_GET['y'];
}
oder anders ausgedrückt:
$x = wenn_das_hier_zutrifft
? übergib_diesen_wert_an_$x
: wenn_nicht_übergib_diesen_wert_an_$x;
Die if-else-Sequenz ist übrigens etwas schneller in der Ausführung --
zumindest hat das mal ein Test, den ich vor längerer Zeit gemacht hatte,
so ergeben (PHP5).
(srry n000000b :()
Hey, den Operator gibts aber auch in anderen Sprachen:
en.wikipedia.org/wiki/?:
...
$bestellung = is_true($durst)
? "Noch 'n Bier!"
: "Ich möchte zahlen";
$ober->anquatschen($bestellung);
...
MffG
EisFuX
danke^^
MFG
bleicher
(Hallo|Hi(ho)|Tag) bleicher,
danke^^
Mhmm, bei deiner E-Mail-Adresse hätte ich jetzt eher ein спасибо erwartet.
;-)
MffG
EisFuX
Grüße,
Mhmm, bei deiner E-Mail-Adresse hätte ich jetzt eher ein спасибо erwartet.
;-)
hihi^^ soll ich bei deiner ein "hände hoch partisane!" oder ähnliches erwarten^^?
MFG
bleicher
(Hallo|Hi(ho)|Tag) bleicher,
Grüße,
Mhmm, bei deiner E-Mail-Adresse hätte ich jetzt eher ein спасибо erwartet.
;-)hihi^^ soll ich bei deiner ein "hände hoch partisane!" oder ähnliches erwarten^^?
Öhm, nein, das Wort kommt von "executive" ...
http://everything2.com/index.pl?node=ExecBase,
und der Erfinder dieses Wortes soll ein ganz friedlicher Mensch sein.
MffG
EisFuX