2010-12-09 15 views
0

, wenn Bedingung ich willüberprüfen, ob Bedingung für den Wert 0

if(isset($_GET['q'])) 
{ 
echo "ok"; 
} 
esle 
{ 
echo "not ok"; 
} 

wenn $ _GET [ 'q'] = 0 überprüfen, ob Sie mich in anderem Teil senden.

Aber ich möchte gehen, wenn.

wenn $ _GET [ 'q'] sogar für 0 einen beliebigen Wert haben, wenn ok

pls jede Hilfe gedruckt werden soll?

+1

Das sollte nicht der Fall sein. Unter "set" Variablen zählen nur "null" Werte als "nicht gesetzt", "0" sollte definitiv "gesetzt" werden. Probieren Sie eine 'var_dump ($ _ GET ['q'])' '. – deceze

+0

Neben den Tippfehlern, die Sie hier haben (die nicht das Problem sind, weil sie Ihnen Syntaxfehler geben würden), sollte das funktionieren. Sind Sie sicher, dass '$ _GET ['q']' tatsächlich '0' ist? Es ist nicht in '$ _POST' oder als '$ _GET [' Q ']' übergeben? – prodigitalson

Antwort

3

Dies ist, was isset tut. Versuchen Sie:

$x["q"] = 0; 
var_dump(isset($x["q"])); 

Sie werden wahr werden. Wenn Sie denken, isset() gibt false auf 0 zurück Sie suchen den falschen Ort, suchen Sie nach einem Fehler an anderer Stelle.

0

0 ist nicht null http://php.net/manual/en/function.isset.php

Sie könnten so etwas wie dieses benötigen Sie den gewünschten Wert unter Berücksichtigung integer ist

if(isset($_GET['q']) && intval($_GET['q']) > 0) 
{ 
echo "ok"; 
} 
else 
{ 
echo "not ok"; 
} 
0

vielleicht wäre array_key_exists() besser geeignet sein.

if (array_key_exists('q', $_GET)) ...

+0

Ein '$ _GET'-Wert kann nur" nicht gesetzt "sein oder einen anderen Wert als" null "haben. Daher sollte die Verwendung von 'array_key_exists' und' isset' identische Ergebnisse liefern. – deceze

+0

Nicht genau, was Sie im ersten Satz meinen. Aber ich habe einen Schnelltest gemacht und soweit ich das beurteilen kann, haben Sie im zweiten Satz Recht. Ich denke, dass op etwas komisches Zeug haben kann (oder ein Fehler), wie @prodigitalson vorschlägt. –

+0

Erster Satz: 'foo.php?' → '$ _GET ['q']' ist * nicht gesetzt *, 'foo.php? Q' → $ _GET ['q'] === '''. Der Wert ist entweder * nicht gesetzt * oder hat einen Wert. Es kann niemals "null" sein. Daher machen 'isset' und' array_key_exists' keinen Unterschied. – deceze

0

Ich denke, das die richtige ist ...

if(array_key_exists('q', $_GET)){ 
    echo "ok"; 
} 
else{ 
    echo "not ok"; 
} 
Verwandte Themen