Hallo Richard,
Nein, denn in Perl heisst die Funktion defined(), sie prüft also auf Definiertheit, nicht Existenz.
Ich werde bei Gelegenheit mal perldoc konsultieren, was mit Definiertheit gemeint ist. (im Gegensatz zu Existenz)
[is_not_false]
Das springt doch immernoch jeden an
Verstehe ich nicht.
while( x )
while( is_not_false( x ) )
Sicherlich, die Benennung war vielleicht sehr ungeschickt.
Hingegen ist
while( defined( x ) )
deutlich etwas anderes und leuchtet ein.
Wenn es Dir einleuchtet (mir nicht) dann kannst Du die PHP-Funktion auch gerne defined nennen. (oder is_defined, falls defined ein reserviertes Wort ist, das weiß ich nicht auswendig)
Natürlich, aber es geht um Programmiertechniken, nicht um interne Umsetzung derselben.
Das kann man nicht trennen, da der Programmierer direkt damit in Verbindung kommt. (wie Du auch weiter unten gesagt hast)
Weil es in Perl nur wenige Haupttypen an Variablen gibt: Skalare, Listen, Hashes, Dateidesktriptoren, Objekte und Referenzen. Eine Zahl, ein Bool-Wert und eine Zeichenkette werden alle durch den gleichen "Typ" repräsentiert.
Nein. Es gibt in Perl Skalare,Arrays und Hashes. Listen existieren nur intern.
In SELFHTML heißen die Arrays Listen, daher habe ich sie Listen genannt. Die Variablen mit dem @ davor, um es mal bildlich auszudrücken. Aber mit den Objekten und Referenzen habe ich mich wirklich vertan.
Nur gelingt es Perl, den Programmierer von diesen internen Typen fast nichts spüren zu lassen, dann schliesslich _will_ ich ja diesen typlosen Umgang.
PHP definiert ganz deutlich diese Typen. Wenn Dir das nicht gefällt, dann musst Du PHP auch nicht verwenden.
Was ist mit Python. Warum hat Python keinen === Operator?
Ich kenne Python nicht, daher habe ich absichtlich keine Aussage darüber gemacht.
Das Problem am Typkonzept ist, dass es inkonstistent ist und den Programmierer mit Dingen belästigt, die er doch eigentlich nicht will.
Woher willst Du wissen, was "der Programmierer" will oder nicht?
Ich persönlich finde das Konzept von PHP eigentlich ganz brauchbar. Jeder hat nunmal andere Vorlieben und nur weil Dir etwas nicht gefällt, musst Du es nicht gleich auf die Allgemeinheit übertragen.
Wenn ich diesen Typquatsch will, nehme ich Java oder C zur Hand Will ich es nicht, nehme ich PHP, aber ich bekomme es trotzdem.
Nein. Es ist ganz einfach: Wenn Du diesen "Typquatsch" (wie Du ihn nennst) willst, dann nimmst Du Java, C oder PHP. Wenn Du ihn nicht willst, dann nimmst Du Perl.
Ich verstehe Dein Problem wirklich nicht: Du magst Typen nicht. Gut. Warum bleibst Du dann nicht bei Perl? Wenn Du PHP verwendest, kommst Du zwangsläufig mit Typen in Verbindung. Wenn Du Perl besser findest, warum nimmst Du es dann nicht einfach?
Viele Grüße,
Christian
PS: Im Übrigen ist $a === $b nur eine Abkürzung für ($a == $b) && (gettype ($a) == gettype ($b))
</faq/#Q-05a>
</faq/#Q-05c>