Original geschrieben von Zatic
echo ist keine Funktion, sondern ein Sprachkonstrukt, siehe PHP Doku:
http://de2.php.net/echo und das hier: http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
Dort steht schoen erklaert, dass man echo ohne "()" verwendet (obwohl es auch mit geht). Will man die Eigenschaften einer Funktion (wie Rueckgabewerte), sollte man [phpf]print[/phpf] verwenden, was "eher" eine Funktion ist.
Ein "Sprachkonstrukt" wie in der doku "language construct" ist nicht wirklich eine Eigenart
einer Sprache. Mann hat das ganze "Sprachkonstrukt" genannt, weil an solchen Dingen
sonst die inkonsistenz viel zu offensichtlich ist. Sprich es ist eine nette Ausrede.
Wenn mann nach PHP + language construct sucht, findet mann nur ein haufen "funktionen"
die eben diesen Satz enthalten.
So z.b das Array:
Code:
$fruits = array (
__ "fruits"_ => array("a" => "orange", "b" => "banana", "c" => "apple"),
__ "numbers" => array(1, 2, 3, 4, 5, 6),
__ "holes"_ => array("first", 5 => "second", "third")
)
Da PHP keine OOP sinnvoll unterstützt kann auch ein Array in PHP nicht wirklich
sauber leicht instanziert werden.
Weshalb mann hier sich die geschichte einfach macht und etwas erlaubt, was so
aufgrund fehlender Spracheigenschafften nicht möglich wäre.
Eine saubere OOP Sprache kann dieses mit Object Orientierten Eigenschaften umsetzen und
als Methode (funktion) bereitstellen.
Dadurch das es bei PHP nicht möglich ist wird sowas einfach "Sprachkonstrukt" genannt.
Der Ausdruck ist aber in einer funktionalen Programmiersprache einfach falsch.
Original geschrieben von Zatic
Demnach koennte man durchaus sagen, dass das Buch falsch ist.
Ich glaube aber eher das Problem dieses Buches ist, dass es einfach zu alt ist. Es setzt ja register_globals auf On voraus, was aber seit PHP 4.2 (standartmaeszig) auf Off steht. Das gezeigte HTML ist auch altbacken. Wenn man schon zu Buechern greift (Angesichts der Onlinetuts zu PHP eigentlich unnoetig) wuerde ich O'Reilly empfehlen, die machen meiner Ansicht nach ihre Arbeit am besten.
Ansonsten ist es voellig richtig, dass PHP inkonsistent und verquirkst ist und sich definitiv nicht als Sprache eignet, um Programmieren zu lernen!
Nein, ein Sprachkonstrukt hat in einer sauberen Programmiersprache nichts zu suchen, und
ein Buchautor sollte eine falsche Spracheigenschafft nicht unterstützen.
Das HTML wie es darsteht hat für mich keine Aussagekraft, da es nicht darum geht.
Mit dem Register Globals hast du sicher recht, kann aber sicherlich, wie du auch angemerkt hast, davon kommen das es vor der Umstellung erschien.
Dennoch ist es die pflicht eines guten Buches sich zu informieren was sich in Zukunf ändern wird, und sein Buch so schreiben das es so lange wie möglich gültig ist.
Beim letzten Punkt gebe ich dir auch recht. OReilly ist auch mein ausgesprochener Lieblingsverlag, wobei ich eigentlich mehr Java und UNIX Bücher von OReilly kenne. Dennoch denke ich mir das mann die Qualität der Bücher auch in den PHP Büchern wiederfindet.