Flashhilfe.de - Flash Community

Bedingungen in If-Abfrage nicht erfüllt

 


AntwortenRegistrieren Seite1  

Kerstin77#1
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

30.04.2010, 13:28

Hallo,

hab hier grad ein Problem was ich mir nicht erklären kann, aber vielleicht hilft mir ja jemand mit einem Wink mit dem Zaunpfahl ;)

Codebeispiel:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$id = (int) $_GET['id'];
$status = (int) $_GET['status'];  // Wert: 0 oder 1

// funktioniert:
if ($id != "" && ($status == 1 || $status == 0)) {
   // Code wird ausgeführt
}

// funktioniert nicht:
if ($id != "" && $status != "")) {
   // Code wird nicht ausgeführt
}


Mal abgesehen davon, daß die erste Variante die sichere ist, würde mich trotzdem mal interessieren, warum die Bedingungen in der zweiten Variante nicht erfüllt werden.

Kerstin
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Werbung
Beiträge: 0
Registriert: Feb 2016


Sleepingbeast#2
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

30.04.2010, 13:56

Hallo Kerstin,

ich tippe mal darauf, dass die Abfrage in deiner ersten Schleife $status == 0 (Zeile 5) nicht richtig klappt. Trotz dass du die Variable $status als integer deklariert hast, ist meines Wissens die Abfrage auf 0 gleichbedeutend mit false. Mit $status == "0" || $status == "1" könnte es klappen.


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
Kerstin77#3
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

Themenautor/in

30.04.2010, 13:59

Gerade die erste Abfrage funktioniert doch!
Wer Rechtschreibfehler findet, darf sie gerne behalten.
Sleepingbeast#4
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

30.04.2010, 14:24

Mist, hab ich mal wieder Müll erzählt ;)
Ich hatte es nur mal schnell getestet und da ist mir aufgefallen, dass die erste Schleife ja verlangt, dass keine leere id UND einen Status von 0 oder 1 übergeben wird. Sie hat bei mir aber auch funktioniert, wenn ich NUR eine id übergeben hatte ohne einen status anzugeben. Also:
...?id=1&status=
Normalerweise hätte die Schleife dann ja gar nicht ausgeführt werden dürfen.
Werd aber mal weiter basteln...vielleicht komm ich noch drauf ;)


Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#5
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

08.05.2010, 23:12

Wenn Du genau nach "" abfragen möchtest, geht das so:

PHP:
1
2
if($vari === "")


D.h. der String muss wirklich leer sein. 0 wäre nicht leer, false auch nicht. Wenn Du es nur so schreibst:

PHP:
1
2
if($vari == "")


Dann trifft dies auch bei 0, false, null und "" zu.
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Kerstin77#6
Benutzerbild von Kerstin77
Beiträge: 1004
Registriert: Jul 2008

Themenautor/in

09.05.2010, 20:33

Ok, danke :-)
Wer Rechtschreibfehler findet, darf sie gerne behalten.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de