Cheatah: (MENSCHELEI) Die Wahrheit feierte Geburtstag

Beitrag lesen

Hi,

soeben überraschte mich PHP im Umgang mit Datentypen. Ich hatte folgenden Code:

  
if ($debug) { tuwas(); }  

Die Variable $debug wurde auf Basis eines URL-Parameters erzeugt, wobei automatisch nummerische und boole'sche Werte erkannt und umgewandelt werden. Somit entspricht der URL-Parameter "debug=true" einer Zuweisung "$debug=true", nicht "$debug='true'".

Nun ja. Nachdem mir eine boole'sche Unterscheidung nicht mehr reichte, habe ich einen nummerischen Debug-Level eingeführt und den Code erweitert:

  
if ($debug > 100) { tuwas(); }  

Und siehe da, auch mit "debug=true" wurde tuwas() aufgerufen. Verwundert prüfte ich, ob meine Umwandlung korrekt war:

  
if (true > 100) { tuwas(); }  

Et voilà, die Wahrheit ist schon über hundert. Wer hätte das gedacht. Nun, ich habe viel gelernt, der Fix ("if ((int)$debug > 100)") war schnell gefunden, aber die Stelle, wo dies dokumentiert ist, suche ich noch immer vergebens. Übrigens ist (int)true===1.

Chea "Das war mein schönstes Ferienerlebnis." tah, sich brav verbeugend und von dannen ziehend

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes