Fireplace April 2026

PHP 5 Befehle in einem Rutsch? :D

Belee

Lt. Commander
Registriert
Dez. 2006
Beiträge
1.518
Hallo Leute

Habe grad auf einer englischen Seite sowas gesehen...

PHP:
$work = nl2br(stripslashes(htmlspecialchars(trim(ucwords($work)))));

Habs jetzt nicht ausprobiert aber sowas haben ich ja noch nie gesehen. Wenn es funktioniert, was wäre der Nachteil ausser das es grausam ausschaut? :freak:
 
Nachteil: du hast die Objekte der Zwischenergebnisse nicht als Variable im Speicher. Wenn du die nicht brauchst, wäre das ein Vorteil :)

Das Debuggen ist darüber hinaus mit so einem Konstrukt natürlich aufwändiger.
 
es ist einfach grausam zu debuggen/zu lesen und kein guter stil. sollte man sich gar nicht erst angewöhnen.
 
Und was ist an
PHP:
$work = ucwords( $work );
$work = trim( $work );
$work = htmlspecialchars( $work );
$work = stripslashes( $work );
$work = nl2br( $work );
ein besserer Stil? Der obige Code kann problemlos verwendet werden und macht auch keine Probleme, zumal man mit den Zwischenergebnissen eh nicht handtieren muss. Zumal ich so oder so bei sowas eine eigene Funktion dafür schreiben würde, die eben dieses ganze Kuddelmuddel abkürzt.
 
es ist lesbarer (von dem seltsamen variablennamen mal abgesehen) und vernünftig debugbar. nicht mehr und nicht weniger. wenn man wirklich ausschließlich für sich selbst programmiert, mag das ja noch uninteressant sein, aber man gewöhnt sich sowas ziemlich schnell an und wehe dann muss man sowas mal berufl. machen und/oder lesen.

und wenn du es nur 1 mal im programm brauchst, braucht man dafür nicht unbedingt ne methode.
 
Richtig sauber wäre hier eigentlich, das obige in eine Funktion zu packen.
Die Funktion wird sicherlich so öfters angewendet.

Gruß.
 
Oder einfach ein Kompromis:
PHP:
$work = nl2br(
		stripslashes(
			htmlspecialchars(
				trim(
					ucwords($work)
				)
			)
		)
	);
Ist etwas übersichtlicher und spart unnötige Ressourcen :-)

Aber die erste Variante angewöhnen sollte man sich wirklich nicht. Ich gestehe sie ab und zu benutzen, wirklich gut ist das aber nicht.
Zum Beispiel um einen Text ab einer bestimmte länge beim nächsten Punk abzubrechen (Text-Vorschau):
PHP:
$text_preview = substr($row['text'],0, strrpos(substr($row['text'], 0,180),'.')+1);
# wäre aber in dem vorherigen beispiel auch nicht wirklich schöner #
$text_preview = substr(
			$row['text'],0, strrpos(
						substr($row['text'], 0,180)
			,'.')
		+1);
am besten sowieso eine Funktion schreiben...

@davidbaumann
In eine Funktion packen macht meinen Erachtens nach nur Sinn, wenn man davon ausgeht diese Funktion noch mindestens ein weiteres Mal zu benutzen.
 
Zuletzt bearbeitet:
Eagle-PsyX- schrieb:
Oder einfach ein Kompromis:
PHP:
$work = nl2br(
		stripslashes(
			htmlspecialchars(
				trim(
					ucwords($work)
				)
			)
		)
	);

Das soll besser sein? Nein. Es entsteht der Eindruck, als handle es sich um Funktionsrümpfe, was aber nicht der Fall ist. Meiner Meinung nach ein sehr schlechter Stil.
 
@Trainmaster
Das war kein Stil, sondern ein Versuch einen zu schaffen.
Ich meine, etwas Kreativität und man kriegt das obige Problem bestimmt auch grafisch und übersichtlich gelöst.

Und wer sagt, dass ein Einrücke nur für Funktionen sind? Für den MySQL-Syntax verwendet man das ja doch auch.
PHP:
	$content['over']['query'] = "
	SELECT
		con.text_id,
		con.text_visibility,
		con.text_text_".LANGUAGE." AS text,
		con.text_title_".LANGUAGE." AS title
	FROM
		`".$DataBase['content']."` AS con
	WHERE
		con.text_visibility = 1
	ORDER BY
		con.text_order DESC,
		con.text_id DESC
	LIMIT
		".$content['over']['start'].",".$content['over']['limit']."
	";
Dummerweise finde ich keine längere Query mit SubSelects, dort hätte man nach den obigen Schema immer mehr Einrückungen.
 
Trainmaster schrieb:
Das soll besser sein? Nein. Es entsteht der Eindruck, als handle es sich um Funktionsrümpfe, was aber nicht der Fall ist. Meiner Meinung nach ein sehr schlechter Stil.

Sehe ich nicht so, genau so werden per Konvention in Java auch interne Klassen behandelt.
Außerdem, seit wann öffnet man Coderümpfe mit nur einer öffnenden Klammer?

Allgemein zum Thema: hängt vom Kontext ab, ab der 2. Verschachtelung sollte aber Schluss sein.
 
Zuletzt bearbeitet:
carom schrieb:
Sehe ich nicht so, genau so werden per Konvention in Java auch interne Klassen behandelt.

Mit Java habe ich nichts am Hut, aber ich kann mir nicht vorstellen, dass per Konvention Parameter-Klammern über mehrere Zeilen geschrieben werden. Genau darum geht es ja. Meiner Meinung nach ein Unding.
 
Trainmaster schrieb:
Mit Java habe ich nichts am Hut, aber ich kann mir nicht vorstellen, dass per Konvention Parameter-Klammern über mehrere Zeilen geschrieben werden. Genau darum geht es ja. Meiner Meinung nach ein Unding.

Bsp. anonyme Klasse

Code:
addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
          showPoint(e.getX(), e.getY());
        }
});
Ergänzung ()

Aber was fange ich überhaupt mit Java an, bleiben wir doch bei PHP. Der Zend Coding Standard hat folgendes im Angebot.

PHP:
threeArguments(array(
    1, 2, 3, 'Zend', 'Studio',
    $a, $b, $c,
    56.44, $d, 500
), 2, 3);

Der PEAR-Standard geht noch weiter, da wirst du wohl Kopfschmerzen bekommen:

PHP:
<?php

$this->someObject->subObject->callThisFunctionWithALongName(
    $this->someOtherFunc(
        $this->someEvenOtherFunc(
            'Help me!',
            array(
                'foo'  => 'bar',
                'spam' => 'eggs',
            ),
            23
        ),
        $this->someEvenOtherFunc()
    ),
    $this->wowowowowow(12)
);

Zitat PEAR:

Nesting those function parameters is allowed if it helps to make the code more readable, not only when it is necessary when the characters per line limit is reached.

Es gibt bei PHP nichts anderes relevantes außer Zend und PEAR. Und wenn man sich daran gewöhnt hat, dann liest sich das obige auch locker von der Hand.
 
Zuletzt bearbeitet:
Jedem das seine :-)
Wenn ich mir mächtige CMSs wie Magento anschaue, wünscht ich mir auch manchmal sie würden sich für den carom geschreibenen Stil entscheiden.
 
Naja, ich denke der Mix macht den guten Stil, da wo man was oft benötigt normal und sauber, da wo man etwas nur ein -zweimal benötigt das obige, denn, man kann auch aus simplen Sachen einen Akt machen nur damit es schön ausschaut, mir ist nicht sooo wichtig wie ein Code ausschaut -interessiert den Interpreter auch nicht, sondern das er schlank wird und das obige ist wahrscheinlich garnicht zu unterbieten. Ich habe nur einen Schreck bekommen wo ich das so gesehen habe weil ich es so noch nicht kannte bzw. gesehen habe.
 
Belee schrieb:
...mir ist nicht sooo wichtig wie ein Code ausschaut -interessiert den Interpreter auch nicht, sondern das er schlank wird und das obige ist wahrscheinlich garnicht zu unterbieten...

die Frage ist: was ist schlank? und interessiert DAS den Interpreter mehr? ;)
 
Es ist total egal, ob man nun zig Variablen nutzt oder nur eine, der Interpreter, sowie der Compiler streichen die eh wieder zu einer zusammen (und machen wahrscheinlich noch viel krassere Sachen . jeder der ein Semester Compilerbau gehört hat, weiß wovon ich rede). Von dem her ist es absolut unnütz, unsauberen Code zu schreiben in dem man Funktionen x-Mal verschachtelt. Zudem ist das auch nicht schneller .. wie schon gesagt, der Compiler bringt die Geschwindigkeit und nicht ein bissle weniger Code ... (außer der Denkansatz ist komplett anders .. aber davon wird hier mal abgesehen)


aja, ich denke der Mix macht den guten Stil, da wo man was oft benötigt normal und sauber, da wo man etwas nur ein -zweimal benötigt das obige, denn, man kann auch aus simplen Sachen einen Akt machen nur damit es schön ausschaut, mir ist nicht sooo wichtig wie ein Code ausschaut
... falls du irgendwann mal als 'Coder' arbeiten möchtest, werden dich deine Kollegen dafür hassen ... unsauberer Code ist das schlimmste was ein Programmierer machen kann, den kein Mensch versteht später wieder was da überhaupt gemacht worden ist.
 
Zuletzt bearbeitet:
@funny..
Wahrscheinlich nicht das ist richtig, man kann es also drehen und wenden wie man will. Jeder macht es halt anders und das ist ja gerade das schöne für jemanden der z.B. erst anfängt, der schaut sich beide Seiten an und baut sich dann wahrscheinlich seinen eigenen Stil und das geht dann immer so weiter.

Du kannst 10 Profis eine und die selbe Aufgabe geben, ich wette, alle 10 Codes sind zum Schluss unterschiedlich und jeder wird beim anderen was zu meckern haben. ;)
Wäre das nicht der Fall gäbe es nur ein Buch und nur einen Stil und alle Codes bzw, Programme auf dieser Welt sähen aus als wenn sie eine und die selbe Person geschrieben hätte.

@kanal..
Vll. wollen manche auch garnicht das Ihre Kollegen wissen was er da jetzt genau gemacht hat und wieso? ;)
 
Zuletzt bearbeitet:
Zurück
Oben