Frage saubere Programmierung von Ausgaben mit echo

Hallo,

einfach eine kleine Frage:

was ist die sauberere Lösung in Sachen Programmieren (sofern es hierfür eine
Lehrmeinung gibt)

Erst einen großen Ausgabestring erzeugen und mit einem einzelnen echo
rausjagen, oder jeweils nach jedem Sinnabschnitt einen Ausgabestring
erzeugen und sofort einzeln mit echo ausgeben?

Konkret habe ich hier eine HTML Ausgabe zu erzeugen die das Ergebnis einer
Datenbankabfrage aufbereitet ausgibt.
Das ganze gerahmt in ein paar nette Tags überschriften und Kommentare etc
für den lesenden user.

Klar sind beide Lösungen machbar und aus dem Bauch raus ist die sofortige
Ausgabe einfacher.

Die Frage ist für mich zweiteilig
a) ist es besser alles sofort oder doch gesammelt auszugeben
b) wie verhält es sich mit der (zugeg. vernachlässigbaren) Systemlast bei
meheren echo Befehlen vs einem einzelnen für eine Sammelausgabe?

Wäre toll wenn mir hier jemand mit einer fundierten Antwort weiterhelfen
könnte da ich mich vom "aus dem Bauch raus Spaghetticode" weiterentwickeln
will.

Danke vorab.

CU

Michael
Michael Vogt [ So, 07 Oktober 2007 12:27 ] [ ID #1838697 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Michael Vogt schrieb:

>was ist die sauberere Lösung in Sachen Programmieren (sofern es hierfür eine
>Lehrmeinung gibt)

Nein. Das ist im Gegenteil eine Frage der Sorte, bei der man von 5 Leuten 10
Meinungen bekommt ;-)

>Erst einen großen Ausgabestring erzeugen und mit einem einzelnen echo
>rausjagen, oder jeweils nach jedem Sinnabschnitt einen Ausgabestring
>erzeugen und sofort einzeln mit echo ausgeben?

Das sind nur zwei Varianten einer einzelnen Herangehensweise an das Problem.
Es gibt mindestens noch die Ansätze:
- Templates, d.h. du schreibst HTML mit speziellen Platzhaltern dort, wo
die Daten hinkommen sollen, und sagst der Templateengine dann nur noch,
was die Daten sein sollen. In deinem Code steht dann keinerlei HTML mehr.
- Du lässt die Ausgabe von einer XML-Bibliothek zusammenbauen. In deinem
Code erstellst du also nur noch eine Struktur aus Knoten, echo kommt
ebenfalls nicht mehr vor.

>Die Frage ist für mich zweiteilig
>a) ist es besser alles sofort oder doch gesammelt auszugeben

Der Geschwindigkeitsunterschied dürfte unbedeutend sein. Es gibt aber einen
qualitativen Unterschied: Wenn du etwas ausgibst ist das "weg", du hast keine
Kontrolle mehr darüber. Daraus folgt auch, dass die Ausgabe von HTTP-Headern
nicht mehr möglich ist. Du musst also das Skript so strukturieren dass dir
die Notwendigkeit eines Headers nicht "zu spät" auffällt.

Allerdings gibt es neben dem Sammeln in einer Variable noch die Möglichkeit,
einen "Output Buffer" zu verwenden: http://php.net/ob_start

--
Wolfgang Fellger
Wolfgang Fellger [ So, 07 Oktober 2007 13:00 ] [ ID #1838701 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Michael Vogt wrote:

> Erst einen großen Ausgabestring erzeugen und mit einem einzelnen echo
> rausjagen, oder jeweils nach jedem Sinnabschnitt einen Ausgabestring
> erzeugen und sofort einzeln mit echo ausgeben?

Was für die Situation passend ist.

> Konkret habe ich hier eine HTML Ausgabe zu erzeugen die das Ergebnis einer
> Datenbankabfrage aufbereitet ausgibt.

Dazu nutzt man auch gern mal Templates. Alles direkt im PHP-Script
zusammenzubasteln ist eh der schlechteste Weg. YMMV

> Das ganze gerahmt in ein paar nette Tags überschriften und Kommentare etc
> für den lesenden user.

Ganz klar ein Fall für Templates.

> Die Frage ist für mich zweiteilig
> a) ist es besser alles sofort oder doch gesammelt auszugeben

Es ist besser Templates zu nutzen. Alles andere ist oder endet irgenwann
in unwaartbaren Code-HTML-Gewirr.

> b) wie verhält es sich mit der (zugeg. vernachlässigbaren) Systemlast bei
> meheren echo Befehlen vs einem einzelnen für eine Sammelausgabe?

Kannste doch selbst testen. Testcases sollte jeder für sich selbst
entwickeln. Zumal Deine Frage dazu einfach viel zu "wässrig" formuliert
ist. Da spielen soooo viele Faktoren eine entscheidende Rolle.

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ So, 07 Oktober 2007 13:10 ] [ ID #1838703 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Wolfgang Fellger schrieb:
> Nein. Das ist im Gegenteil eine Frage der Sorte, bei der man von 5 Leuten 10
> Meinungen bekommt ;-)

Stimmt, das ist mehr eine Glaubensfrage, ob einmal echo oder
zwischendurch. Wobei ich beim Unterschied zwischen echo und XML-Writer
eher mit Argumenten beantworten würde.

> - Du lässt die Ausgabe von einer XML-Bibliothek zusammenbauen. In deinem
> Code erstellst du also nur noch eine Struktur aus Knoten, echo kommt
> ebenfalls nicht mehr vor.

Klar kommt da ein echo vor, aber halt nur einer am Ende der den XML Baum
ausgibt. Außer du nimmst print. :)

Vorteile:
- Formatierung des HTML Dokumentes wird vom XML Writer bestimmt, in der
Entwicklung gebe ich das HTML Dokument schön eingerückt und sauber
formatiert aus, im produktivsystem ohne Leerzeichen und Zeilenumbrüche,
was das ganze sehr klein haltet für die Übertragung
- Die Erstellung der HTML Tags übernimmt komplett die XML Klasse, sodass
bei Werten, die man dieser übergibt immer ein "htmlentities" drüber
laufen kann, keine Chance mehr für XSS
- Die HTML Syntax mit korrekter Verschachtelung der Tags muss nicht mehr
überprüft werden, da dies ebenfalls von der Klasse übernommen wird. Es
können keine spitzen Klammern oder sonstige Syntaxelemente fehlen
- Das zerlegen der HTML Seite in mehrere Quellcodeabschnitte wird
erleichter. Einer Funktion oder Methode muss lediglich ein XML Knoten
übergeben werden, an welches Sie ihren Inhalt anhängt

Nachteile:
- Späterhin kaum bzw. nur mit großen Aufwand umsetzbar, nur zu überlegen
bei neuen Projekten von Grund auf zu verwenden
- Konsequenter Einsatz ist ein Muss, es kann nicht zwischen normaler
Ausgabe und XML Writer gewechselt werden
- Performance ist etwas schlechter wegen den vielen Methodenaufrufen
beim Erstellen der fertigen Seite aus den XML Knoten

Sonst fallen mir gerade keine Argumente ein. :) Ich hab ewig darüber
nachgedacht und mich über diese Dinge informiert. Aber gerade die Punkte
freie Formatierung im Nachhinein (schön lesbar oder Speicherschonend)
und vor allem auch der Punkt Sicherheit haben mich überzeugt. Aber da
muss jeder selbst abwägen, was Ihm wichtig ist.

(PS: Wer XML Writer braucht sollte sich eher eigene schreiben, da diese
sehr einfach zu schreiben sind und man dann was Formatierung etc. angeht
sehr frei ist. Wer welche haben will, kann mich auch privat anschreiben,
gebe meine gerne nach außen.)

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ So, 07 Oktober 2007 13:34 ] [ ID #1838705 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

> Dazu nutzt man auch gern mal Templates. Alles direkt im PHP-Script
> zusammenzubasteln ist eh der schlechteste Weg. YMMV

Nicht pauschal. Ich verwende auch Templates, habe aber für einen
Anwendungsfall wieder ein direktes Echo gemacht, weil es einfach sehr
viele Daten waren. Wenn das Skript bei 95% an die max_execution_time
stösst ist das weniger gravierend als wenn ganüscht rauskommt.

Bei Templates mag ich das Zeug mit eigenen Anweisungen nicht wie Smarty.
Das ist dann Programmiersprache in der Programmiersprache...ich habe
einfache Templates mit Platzhaltern, das wars.

Manche Dinge, wie z. B. selbstgebastelte Pivot-Tabellen muss man einfach
von Hand ausgeben, würde ich sagen.

Schlimm finde ich es - den Fall darf ich gerade warten - wenn es
uneinheitlich ist:
*mal html mit <?php ?>
*mal reines php
*mal html mit Platzhaltern...


--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Hadanite Marasek [ So, 07 Oktober 2007 15:21 ] [ ID #1838711 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Ulf Kadner wrote:

> Michael Vogt wrote:
>
>> Erst einen großen Ausgabestring erzeugen und mit einem einzelnen echo
>> rausjagen, oder jeweils nach jedem Sinnabschnitt einen Ausgabestring
>> erzeugen und sofort einzeln mit echo ausgeben?
>
.....
>
> Kannste doch selbst testen. Testcases sollte jeder für sich selbst
> entwickeln. Zumal Deine Frage dazu einfach viel zu "wässrig" formuliert
> ist. Da spielen soooo viele Faktoren eine entscheidende Rolle.
>
Nun es geht mir in erster Linie darum mein Mini php in einen sauberen Code
zu verwandeln.

Neben dem üblichen Einrücken und Codeoptimieren habe ich momentan noch im
Code den Fall dass etwas ausgegeben wird dann wird aus der db was
nachgeladen dann wird wieder eine Ausgabe gebastelt und so weiter.

Da ich mit XML und Templates noch keine Erfahrung habe bastle ich mir mit
echo also immer eine Ausgabe mit gutem alten HTML
Dazu gebe ich entweder eine Reihe Tags und dann Text und dann wieder Tags
per echo aus - oder ich fasse alles möglichst komplett nach und nach in
einem Ausgabestring zusammen und jage dann den per echo raus.

Das schrittweise aufbauen des Ausgabestrings sieht mir aber auch nur dann
sauber und überschaubar aus wenn ich es in vielen kleinen Schritten mache
damit man noch erahnen kann was da gerade gebaut wird.

Glücklich bin ich mit keiner der beiden Lösungen auch wenn das echo $ausgabe
am ende zumindest elegant wirkt.

Nur darum hier die Frage ob es sowas wie eine Guidline zur Ausgbaerzeugung
gibt oder ob das alles echt nur nach Bauchgefühl gemacht wird.




Nebeninfo am Rande:
Ich bastle im Rahmen meines Studium an einer Minisoftware in Php die mit
Datenbanken eine mini Webapllication geben soll.

Im Skript selbst ist nix zum Thema sauberes Programmieren in Hinsicht auf
meine Frage hinterlegt ich weiß aber dass der Prof sehr kritisch ist.

Also will ich Netz und doppelten Boden und frage lieber Leute die sich
auskennen um Rat zur Tat.

Das ist mir angenehmer als am Ende nach der Abgabe von einem "das ist so
nix" Komemntar vom Prof entnervt zu werden und nichts daraus zu lernen.
Dass mein Code funktioniert weiss ich - ich würde ihn nur gerne halbwegs
elegant aufbauen bzw neu aufbauen wenn mein Weg zu 'brutal' ist.
Michael Vogt [ So, 07 Oktober 2007 15:25 ] [ ID #1838712 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Michael Vogt schrieb:
> Nun es geht mir in erster Linie darum mein Mini php in einen sauberen Code
> zu verwandeln.

Die Größe eines Projektes spielt meiner Meinung nach keine Rolle.
Höchstens, dass dann aufwendige Verfahren vielleicht nicht nötig sind
und einfacheren den Vorzug gewähren sollte, was bei der Ausgabe hier
allerdings weniger eine Rolle spielt.

> Da ich mit XML und Templates noch keine Erfahrung habe bastle ich mir mit
> echo also immer eine Ausgabe mit gutem alten HTML
> Dazu gebe ich entweder eine Reihe Tags und dann Text und dann wieder Tags
> per echo aus - oder ich fasse alles möglichst komplett nach und nach in
> einem Ausgabestring zusammen und jage dann den per echo raus.

XML und HTML haben den selben Vorfahren, von daher sollte XML für dich
kein Problem darstellen.

> Glücklich bin ich mit keiner der beiden Lösungen auch wenn das echo $ausgabe
> am ende zumindest elegant wirkt.

wenn in deinem Skript an hundert Stellen $ausgabe .= '<p>hallo</p>';
usw. machst finde ich das auch nicht gerade elegant.

> Nur darum hier die Frage ob es sowas wie eine Guidline zur Ausgbaerzeugung
> gibt oder ob das alles echt nur nach Bauchgefühl gemacht wird.

Die Hauptsachen wurden schon genannt:
- echo einzelner Teile (egal ob immer jeweils ein echo oder
zwischenspeichern in einer Variable, kommt auf das selbe hinaus)
- Templatesysteme bei denen HTML Dateien mit Platzhaltern hast für die
spätere Daten, allerdings musst hier das HTML halt immer noch schreiben
- XML Klassen zur Erzeugung der HTML Seite (siehe anderer Thread von
mir, da hab ich das denk ich detailliert genug erklärt

> Nebeninfo am Rande:
> Ich bastle im Rahmen meines Studium an einer Minisoftware in Php die mit
> Datenbanken eine mini Webapllication geben soll.
>
> Im Skript selbst ist nix zum Thema sauberes Programmieren in Hinsicht auf
> meine Frage hinterlegt ich weiß aber dass der Prof sehr kritisch ist.
>
> Also will ich Netz und doppelten Boden und frage lieber Leute die sich
> auskennen um Rat zur Tat.
>
> Das ist mir angenehmer als am Ende nach der Abgabe von einem "das ist so
> nix" Komemntar vom Prof entnervt zu werden und nichts daraus zu lernen.
> Dass mein Code funktioniert weiss ich - ich würde ihn nur gerne halbwegs
> elegant aufbauen bzw neu aufbauen wenn mein Weg zu 'brutal' ist.

In dem Falle dürfte Sauberkeit wohl eine größere Rolle spielen, als
Performance oder schnelle Fertigstellung des Projektes. Ich würde an
deiner stelle daher eher in Richtung Template oder XML Aufbau schauen
und die Vor- und Nachteile nach deinen Bedürfnissen abwägen.

Es gibt an dieser Stelle kein richtig oder falsch (wie an vielen anderen
auch), das wichtigste wurde genannt und nun musst du halt entscheiden
was für dich am besten geeignet ist.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ So, 07 Oktober 2007 15:45 ] [ ID #1838713 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Hadanite Marasek wrote:
>> Alles direkt im PHP-Script
>> zusammenzubasteln ist eh der schlechteste Weg. YMMV
>
> Nicht pauschal. Ich verwende auch Templates, habe aber für einen
> Anwendungsfall wieder ein direktes Echo gemacht, weil es einfach sehr
> viele Daten waren. Wenn das Skript bei 95% an die max_execution_time
> stösst ist das weniger gravierend als wenn ganüscht rauskommt.

:-)

> Bei Templates mag ich das Zeug mit eigenen Anweisungen nicht wie Smarty.
> Das ist dann Programmiersprache in der Programmiersprache...ich habe
> einfache Templates mit Platzhaltern, das wars.

Naja so ne Dinge wie durch Arrays iterieren macht sich m.M. nach auch in
Templates ganz gut. Allerdings soll das nicht heisen das ich Smarty gut
finde.

> Manche Dinge, wie z. B. selbstgebastelte Pivot-Tabellen muss man einfach
> von Hand ausgeben, würde ich sagen.

Geschmackssache.

> Schlimm finde ich es - den Fall darf ich gerade warten - wenn es
> uneinheitlich ist:
> *mal html mit <?php ?>

Das finde ich ansich schon Schlimm. Solches Zeugs hab ich früher auch
mal verbrochen.

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_) Mitglied der Freizeitvögel? ;-)
^^
Ulf Kadner [ Mo, 08 Oktober 2007 09:55 ] [ ID #1839480 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Michael Vogt wrote:

> Nun es geht mir in erster Linie darum mein Mini php in einen sauberen Code
> zu verwandeln.

Dein PHP wird sich wohl in seiner größe kaum von der Anderer
PHP-Installationen unterscheiden. Bei Deinen Scripten dürfte das evtl.
zutreffen. ;-)

> Da ich mit XML und Templates noch keine Erfahrung habe bastle ich mir mit
> echo also immer eine Ausgabe mit gutem alten HTML

Da der Umgang mit Templateengines absolut easy ist verstehe ich nicht
warum Du das nicht bereits vor Deinem Posting nachgeholt hast.

> Nur darum hier die Frage ob es sowas wie eine Guidline zur Ausgbaerzeugung
> gibt oder ob das alles echt nur nach Bauchgefühl gemacht wird.

Mit Bauchgefühl hat das eher wenig zu tun. NAch über 10 Jahren PHP kann
ich aber durchaus sagen das Deine Herangehensweise nicht sehr beständig
und wartungsfreundlich ist. Wer ernsthaft PHP-Anwendungen produziert die
auch in ein paar Jaren noch von Anderen wartbar sein sollen verzichtet
wo möglich auf HTML-PHP Mixe. Ganz ausschließen lassen sich
String-Verkettungen und Kleinere Mixereien natürlich nicht.

> Nebeninfo am Rande:
> Ich bastle im Rahmen meines Studium an einer Minisoftware in Php die mit
> Datenbanken eine mini Webapllication geben soll.

Fein.

> Im Skript selbst ist nix zum Thema sauberes Programmieren in Hinsicht auf
> meine Frage hinterlegt ich weiß aber dass der Prof sehr kritisch ist.

Bei verketteten Ausgaben mit echo ists z.B. immer besser das Komma als
Trenner zu nutzen.

Besser:
echo '<strong>',$name,'</strong>';

Schlechter:
echo '<strong>'.$name.'</strong>';

Durch das Komma entfällt die unnötige Verkettung zu einem einzigen String.

Auch ein vernünftiger Einsatz von (s)printf() verbessert den Code. Obs
dazu öffentliche Guidelines gibt weis ich nicht. Ich hab meine eigenen.

> Also will ich Netz und doppelten Boden und frage lieber Leute die sich
> auskennen um Rat zur Tat.

Ordentlicher Templateeinsatz kann sich da durchaus bezahlt machen.

> Das ist mir angenehmer als am Ende nach der Abgabe von einem "das ist so
> nix" Komemntar vom Prof entnervt zu werden und nichts daraus zu lernen.

Dann zeig Ihm ordentliche Trennung von Layout und Code. Was das bedeutet
sollte Dir klar sein.

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Mo, 08 Oktober 2007 10:18 ] [ ID #1839481 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Ulf Kadner schrieb:

> Mit Bauchgefühl hat das eher wenig zu tun. NAch über 10 Jahren PHP [..]

Du kennst noch PHP 1.0 ? ;)

Gruß,
Torsten
thorny [ Mo, 08 Oktober 2007 10:41 ] [ ID #1839482 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Torsten Zühlsdorff wrote:

> Du kennst noch PHP 1.0 ? ;)

Du nicht? :-o

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Mo, 08 Oktober 2007 10:44 ] [ ID #1839483 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Ad 2007-10-08, Ulf Kadner <dr_logic [at] gmx.net> dixit:

> Bei verketteten Ausgaben mit echo ists z.B. immer besser das Komma
> als Trenner zu nutzen.
>
> Besser:
> echo '<strong>',$name,'</strong>';
>
> Schlechter:
> echo '<strong>'.$name.'</strong>';

Ergaenzend fuer Leute, die den Unterschied zwischen "print" und
"echo" suchen: Hier in diesem Beispiel steckt er; "print" versagt.

Warum eigentlich?

Grusz,

Peter Blancke

--
Hoc est enim verbum meum!
Peter Blancke [ Di, 09 Oktober 2007 09:56 ] [ ID #1840494 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Peter Blancke schrieb:

> Ad 2007-10-08, Ulf Kadner <dr_logic [at] gmx.net> dixit:
>
>> Bei verketteten Ausgaben mit echo ists z.B. immer besser das Komma
>> als Trenner zu nutzen.
>>
>> Besser:
>> echo '<strong>',$name,'</strong>';
>>
>> Schlechter:
>> echo '<strong>'.$name.'</strong>';
>
> Ergaenzend fuer Leute, die den Unterschied zwischen "print" und
> "echo" suchen: Hier in diesem Beispiel steckt er; "print" versagt.

Wieso "versagt"? Inwiefern?

Wer die _wirklichen_ Unterschiede sucht, sollte ich den Artikel
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 durchlesen.

Gruß. Claus
Claus Reibenstein [ Di, 09 Oktober 2007 11:05 ] [ ID #1840502 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Michael Vogt <vogo.vogt [at] web.de> wrote:

> Das schrittweise aufbauen des Ausgabestrings sieht mir aber auch nur dann
> sauber und überschaubar aus wenn ich es in vielen kleinen Schritten mache
> damit man noch erahnen kann was da gerade gebaut wird.
>
> Glücklich bin ich mit keiner der beiden Lösungen auch wenn das echo $ausgabe
> am ende zumindest elegant wirkt.
>

Wenn Du ein Datenbank-Ergebnis ausgibst, dann trenne so weit als möglich
das Model vom View. Konkretes Beispiel.

Du hast eine Liste von Personen (Vereinsmitglieder) mit ein paar Daten.
Die Ausgabe soll in einer Tabelle erfolgen, die auch Spaltentitel etc.
bereitstellt.

Gliedere das aus. Mach eine PHP-funktion (bzw. eine Methode einer
Klasse), die das Ausgeben der kompletten Tabelle übernimmt. Im File
sieht das dann einfach so aus:

....einleitungstext, anderer Kram...
print $Mitglieder->getSortedListAsHTML();

Später kannst du ohne großes Geraffel diese ausgelagerte Funktion um
Javascript zum Sortieren nach Spalten anreichern, die Datenbank dahinter
verändern oder ähnliches. Zudem wird das Testen sehr erleichtert, denn
anfangs kannst auch eine Dummyausgabe dahinterschalten.

Innerhalb von $Mitglieder verwende ich einen Iterator, der durch die
Datenbank läuft und dabei eine Tabellenzeile ausgibt.

Servus,
Konni

--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ Di, 09 Oktober 2007 11:32 ] [ ID #1840506 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Ad 2007-10-09, Claus Reibenstein <4spammersonly [at] web.de> dixit:
> Peter Blancke schrieb:
>
>> Ad 2007-10-08, Ulf Kadner <dr_logic [at] gmx.net> dixit:
>>
>>> Bei verketteten Ausgaben mit echo ists z.B. immer besser das Komma
>>> als Trenner zu nutzen.
>>>
>>> Besser:
>>> echo '<strong>',$name,'</strong>';
>>>
>>> Schlechter:
>>> echo '<strong>'.$name.'</strong>';
>>
>> Ergaenzend fuer Leute, die den Unterschied zwischen "print" und
>> "echo" suchen: Hier in diesem Beispiel steckt er; "print" versagt.
>
> Wieso "versagt"? Inwiefern?

Hier:

~$ php -r 'print "dies", "das", "jenes";'
Parse error: syntax error, unexpected ',' in Command line code on line 1

Aber:

~$ php -r 'echo "dies", "das", "jenes";'
diesdasjenes


> Wer die _wirklichen_ Unterschiede sucht, sollte ich den Artikel
> http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
> durchlesen.

Drum mein Hinweis "Ergaenzend"; in dem Artikel findest Du naemlich
zu diesem Verhalten nichts.

Vorsichtshalber:

~$ php -v
PHP 5.2.0-8+etch1~bpo.1 (cli) (built: Mar 15 2007 10:10:16)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies

Grusz,

Peter Blancke

--
Hoc est enim verbum meum!
Peter Blancke [ Di, 09 Oktober 2007 12:53 ] [ ID #1840508 ]

Re: Frage saubere Programmierung von Ausgaben mit echo

Peter Blancke schrieb:

> > > Ergaenzend fuer Leute, die den Unterschied zwischen "print" und
> > > "echo" suchen: Hier in diesem Beispiel steckt er; "print" versagt.
>
> Hier:
>
> ~$ php -r 'print "dies", "das", "jenes";'
> Parse error: syntax error, unexpected ',' in Command line code on line 1
>
> Aber:
>
> ~$ php -r 'echo "dies", "das", "jenes";'
> diesdasjenes
>
> > > Warum eigentlich?

Ist eigentlich ganz einfach:
Weil im PHP-Manual genau definiert ist, dass dies bei dem Eeinen geht und
bei dem Anderen nicht... Sind halt zwei verschiedene Sprachkonstrukte, und
das Eine ist kein Alias für das Andere, auch wenn beide grundsätzlich
erstmal einen String ausgeben können.

Schade eigentlich, dass eben in den Examples zu print() dort noch fehlt,
dass dieses einen Rückgabewert hat und selbst innerhalb einer Expression
eingesetzt werden kann (im Gegensatz zu echo()).

Gruß
Carsten
Carsten Wiedmann [ Di, 09 Oktober 2007 13:49 ] [ ID #1840512 ]
PHP » de.comp.lang.php.misc » Frage saubere Programmierung von Ausgaben mit echo

Vorheriges Thema: Warnhinweis: $inhalt3 = htmlentities($inhalt);
Nächstes Thema: Datumsangaben von 1800 bis 2000