phpbar.de logo

Mailinglisten-Archive

[php] is_long(); -> "23" nicht erkannt

[php] is_long(); -> "23" nicht erkannt

Friedhelm Betz php_(at)_phpcenter.de
Thu, 10 Jan 2002 15:11:55 +0100


Hallo Joachim,

[...]

> Aber das die Funktion checkdate() keine Fehlermeldung gibt, ist äußerst
> gemein!!!
> Beispiel:

> $test = "2z3.04.1998";
> $a = explode(".", $test);
> if(!checkdate($a[1], $a[0], $a[2])){
>  echo "falsch";
> }else{
>  echo "OK";
> }

> Da kommt "OK" bei raus... also kann man mit checkdate() den größten
Blödsinn
> auf Richtigkeit des Datums(!) testen lassen, und die Funktion sagt, das
> alles in Ordnung ist.... super.

KLar, die Funktion will halt integer-Argumente, dann musst du halt
beim Aufrufen dafür sorgen, dass du das richtige übergibst.
Die Teile separat überprüfen, ob sie nur Zahlen enthalten (is_numeric
für strings).
Die arme Funktion kann doch nicht hellsehen :-)

> Was passiert?
> Beim übergeben von "2z3" an die Funktion wird daraus ein Integer. Ich nehme
> mal an, das in dem Beispiel dann das Datum 2.04.1998 getestet und für gut
> befunden wird. Das ist doch echt gemein sowas...

Tja ob gemein oder nicht: die automatische Typumwandlung bei PHP
funktioniert halt nun mal so :-)


 Friedhelm


php::bar PHP Wiki   -   Listenarchive