@Gunnar Bittersmann
An
sprintf()hatte ich vorher auch gedacht,
Guter Gedanke. Verfolge ihn weiter!
Für diesen Verwendungszweck jedoch leider absolut ungeeignet!!
jedoch dürfte für einen zukünftiger Autor diese Schreibweise der Platzhalter unverständlich sein
Ein PHP-Entwickler sollte PHP verstehen. Oder zumindestens die Doku kennen.
Ich habe bewusst nicht von einem PHP-Entwickler gesprochen, sondern von einem Autor!
Der unterschied ist klar: Ein Entwickler schreibt das Script und kennt somit die Variablen usw. Ein Autor benutzt das Script und Schreibt damit seinen Text welcher in der Variablen $text weiterverarbeitet wird. Der Autor hat keine Ahnung was im Hintergrund ab geht, kann aber anhand einer kurzen Doku erfahren, das %NAME% ein möglicher Platzhalter ist und jeweils durch einen Namen ersetzt wird. Hingegen wird man ihm %1$s nur sehr schwer erklären können, ist es doch Positionsabhängig und dadurch nicht eindeutig!
und er kennt ja auch nicht die Positionen der Ersetzungsvariablen.
Frei nach ChrisB: Wenn irgendwessen Gedanken gestützt werden müssen, heißt die Krücke dafür „Kommentar“, nicht „unsinniger Code“.
$text = 'Hallo %1$s, wollen uns in %2$s mal wieder treffen?'; // %1$s: Name, %2$s: Ort
Wie schon erwähnt kommt der Inhalt von `$text`{:.language-php} vom Benutzer und ist nicht festzementiert sondern dynamisch. Da nützt auch kein noch so guter Kommentar, den ein Benutzer eh nie zu Gesicht bekommt.
Wer sich die Aufgabenstellung genau durchliest und etwas weiter denkt wird den Unterschied bemerken.