Versteh die Welt nicht mehr: Konstanten in if
Marlon
- php
Hi.
Ich habe folgenden Quellcode:
if( !USERNAME ||
empty(USERNAME) ||
!isset(USERNAME) ||
!user_in_db(USERNAME) ){
echo "Tu dies".";
}
USERNAME ist eine Konstante die davor definiert wurde. user_in_db() ist eine benutzerdefinierte Funktion.
PHP gibt mir folgende Fehlermeldung:
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in ... on line 57
In Zeile 57 ist die empty()-Funktion.
Brauch ich für Konstanten eine andere Schreibweise als für Variabeln? Habe davor noch nicht so viel mit Konstanten gearbeitet, deshalb weiß ich das nicht so genau.
lg
marlon
Hallo!
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in ... on line 57
In Zeile 57 ist die empty()-Funktion.
Das sagt die Doku zu empty():
Note:
empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).
mfg
frafu
Hallo,
Ich habe folgenden Quellcode:
Woher?
if( !USERNAME ||
empty(USERNAME) ||
!isset(USERNAME) ||
!user_in_db(USERNAME) ){
echo "Tu dies".";
}
Der Code bewirkt folgendes:
Wenn USERNAME als Konstante [false|null|''|0] ist, aber definiert
oder
Wenn USERNAME [false|null|''|0] ist
oder
Wenn USERNAME nicht definiert ist
oder
...
Wolltest Du das so?
Wenn nämlich USERNAME nicht deklaiert wurde, gibt PHP stattdessen den String USERNAME zurück. Dieser wäre nach einfachem Vergleich immer true.
Was willst Du denn eigentlich erreichen?
Bitte im Klartext!
LG
Chris
Hallo Marlon.
echo "Tu dies".";
}
Fällt dir hier (unter Zuhilfenahme des Syntax-Highlighting) etwas auf?
Einen schönen Donnerstag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
[<mathbr:del.icio.us/>](http://del.icio.us/mathbr) [<mathbr:w00t/>](http://w00t.noctus.net)
Hi
echo "Tu dies".";
}
>
> Fällt dir hier (unter Zuhilfenahme des Syntax-Highlighting) etwas auf?
Ja, aber ich hab euch ja nicht meinen Originalcode gegeben ;-) Statt dem 'echo "Tu dies".";' sind bei mir noch bestimmt 20 Zeilen an Quellcode, die euch aber nicht interessieren brauchen.
Bye
Marlon
Hallo Marlon,
if( !USERNAME ||
empty(USERNAME) ||
!isset(USERNAME) ||
!user_in_db(USERNAME) ){
echo "Tu dies".";
}
>
> USERNAME ist eine Konstante die davor definiert wurde. user\_in\_db() ist eine benutzerdefinierte Funktion.
> PHP gibt mir folgende Fehlermeldung:
Eine Konstante kann man mit [defined('KONSTANTEN_NAME')](http://de.php.net/manual/de/function.defined.php) prüfen.
empty() und isset() sind da denkbar ungeeignet.
> Parse error: syntax error, unexpected ')', expecting T\_PAAMAYIM\_NEKUDOTAYIM in ... on line 57
T\_PAAMAYIM\_NEKUDOTAYIM ist ist übrigens der doppelte Doppelpunkt "::"
MffG
EisFuX
--
... [Suchmaschinen-Blog](http://www.kso.co.uk/de/blog/) ...