Problem mit if 0 / isset usw...
Nicole
- php
Hallo erst mal ;-),
Das folgende Problem hatte ich schon öfter
und in vielen Variationen.
Also ich übergebe einen Wert als String:
$x = "123";
Dann überprüfe ich mit:
if($x){ echo "TYP: x= ".gettype($x);}
// Ausgabe = TYP: x= string
Soweit so gut, aber wenn $x="0";
dann ist die IF Bedigung nicht erfüllt und
es geht nicht weiter.
Natürlich kann ich auch mit ISSET fragen:
if(isset($x){echo "TYP: x= ".gettype($x);}
Dann geht es zwar auch wenn eine Null übergeben wird,
leider aber auch dann wenn die variable leer ist( $x="";).
Klar ich könnte mit diversen if's Kontrollmechanismen das
weiter eingrenzen, aber in einem langen script
dass immer wieder nach if($x)... fragt, ist das nicht
nur nervig, sondern erhöht sich das Fehlerrisiko dadurch.
Jetzt wolllte ich wissen ob ich vielleicht einen Denkfehler habe
und es vielleicht eine ganz einfache Lösung dafür gibt ?
Gruss Nikki
Hallo Nikki,
Soweit so gut, aber wenn $x="0";
Versuch mal $x = '0'; oder $x = '\0'; oder $x = "\0";
Hallo Rene,
Soweit so gut, aber wenn $x="0";
Versuch mal $x = '0'; oder $x = '\0'; oder $x = "\0";
Wozu soll dass gut sein ?
1. Variable wird im Link übergeben also standard
schon mal "STRING".
2. Sicherheitshalber konvertiere ich sogar am
Anfang vom ZielScript nochmal um:
$x=(string)$x;
Gruss Nikki
Hi Nikki,
Soweit so gut, aber wenn $x="0";
Versuch mal $x = '0'; oder $x = '\0'; oder $x = "\0";Wozu soll dass gut sein ?
Hast du es wenigstens mal ausprobiert das $x = ... direkt in das PHP-Script zuschreiben ohne das jetzt per GET zu übergeben?
Gruß
René
Hallo Rene,
Soweit so gut, aber wenn $x="0";
Versuch mal $x = '0'; oder $x = '\0'; oder $x = "\0";Wozu soll dass gut sein ?
Hast du es wenigstens mal ausprobiert das $x = ... direkt in das PHP-Script zuschreiben ohne das jetzt per GET zu übergeben?
»»
Natürlich !!!!
Gruss Nikki
Hallo Nikki,
Natürlich !!!!
hat eine Möglichkeit davon funktioniert?
Lieber Rene,
Natürlich !!!!
hat eine Möglichkeit davon funktioniert?
probiers doch mal aus:
<?PHP
$x = "0";
// Das klappt nicht:
if($x){echo "Nr. 1 --- x ist vorhanden = ".gettype($x);}
// Das klappt, aber leider auch wenn $x=""; also leer ist
if(isset($x)){echo "Nr. 2 --- x ist vorhanden = ".gettype($x);}
?>
Versuche doch mal so, dass Nr. 1 klappt.
Gruss Nikki
hi Nikki,
----------
<?PHP
$x = '\0';
// Das klappt nicht:
if($x){echo "Nr. 1 --- x ist vorhanden = ".gettype($x);}
// Das klappt, aber leider auch wenn $x=""; also leer ist
if(isset($x)){echo "Nr. 2 --- x ist vorhanden = ".gettype($x);}
?>
----------
Ausgabe:
----------
Nr. 1 --- x ist vorhanden = string
Nr. 2 --- x ist vorhanden = string
----------
Hallo Nikki,
Jetzt wolllte ich wissen ob ich vielleicht einen Denkfehler habe
und es vielleicht eine ganz einfache Lösung dafür gibt ?
ich vermute, Du suchst: http://www.php.net/manual/de/function.empty.php ;)
Gruß, Thoralf
Hallo Nikki,
Soweit so gut, aber wenn $x="0";
dann ist die IF Bedigung nicht erfüllt und
es geht nicht weiter.
klar - der String "0" wird als false angesehen: http://www.php.net/manual/de/language.types.boolean.php#language.types.boolean.casting
Dann geht es zwar auch wenn eine Null übergeben wird,
leider aber auch dann wenn die variable leer ist( $x="";).
wie Thoralf schon schrieb - nimm empty()
Grüße aus Nürnberg
Tobias