Abfrage: Variable enthält Text -> ja /nein
LSpreee
- php
wie lautet die kürzeste Kontrollstruktur zur Abfrage, ob eine Variable Text enthält.
if ($textvar)
ist das gültig? Funktionieren tuts. Auch wenn $texvar kein Boolean ist. Kann ich diesen Code guten Gewissens verwenden?
Oder was mit isset(); ?
Vielen Dank
Hi,
wie lautet die kürzeste Kontrollstruktur zur Abfrage, ob eine Variable Text enthält.
if ($textvar)
ist das gültig? Funktionieren tuts.
Nur, wenn die Variable existiert - sonst gibt es, bei sinnvoll eingestelltem error_reporting, eine Notice.
Auch wenn $texvar kein Boolean ist.
PHP konvertiert automatisch zwischen Typen, ja.
Kann ich diesen Code guten Gewissens verwenden?
Kommt drauf an. Soll bspw. eine Variable mit dem Textinhalt "0" auch als false gelten ...?
Oder was mit isset(); ?
Oder was mit empty ... was das alles als wahr und was als falsch wertet, kannst du im Handbuch nachlesen.
Und bezüglich der automatischen Typ-Konvertierung und zu welchen Ergebnissen sie bei welchen Inhalten führt, ebenfalls.
MfG ChrisB
Hi,
if ($textvar)
ist das gültig? Funktionieren tuts.
auch mit
$textvar = "0";
oder
$textvar = "false";
oder
$textvar = "";
vor der Abfrage?
cu,
Andreas
Hi!
if ($textvar)
ist das gültig? Funktionieren tuts.auch mit
$textvar = "0";
$textvar = "false";
$textvar = "";
vor der Abfrage?
Siehe dazu PHP type comparison tables. Das beginnt mit einer Tabelle, die einige Funktionsergebnisse und auch den impliziten Typecast nach boolean auflistet.
Lo!
Vielen Dank euch zwei.
Ich verwende es jetzt. Ich verwende es in einer eigenen Funktion, mit den folgenden ersten zwei Zeilen:
function echoTab($data,$class="",$style=""){
if ($class) $class = "class='$class'";
.
.
.
Daher ist mir die Geschichte mit der "0" egal. Ich rufe Die Funktion nur selbst auf!
Danke.
Liebe(r) LSpreee,
function echoTab($data,$class="",$style=""){
if ($class) $class = "class='$class'";
.
.
.
besser so:
~~~php
function echoTab($data,$class="",$style=""){
if (!emtpy($class)) {
$class = sprintf(' class="%s"', $class);
}
if (!emtpy($style)) {
$style = sprintf(' style="%s"', $style);
}
...
}
Liebe Grüße,
Felix Riesterer.
Arrrgh, blödes copy&paste!
es muss natürlich "empty" heißen...
[...] if (!empty($class))[...]
Liebe Grüße,
Felix Riesterer.
Hi!
besser so:
$class = sprintf(' class="%s"', $class);
Noch besser:
$class = sprintf(' class="%s"', htmlspecialchars($class));
Analog beim style-Attribut.
Auch wenn er die Funktion derzeit nur selbst zu verwenden gedenkt, sollte er sich nicht unnötig XSS-Lücken einbauen.
Lo!