Der Martin: SUchen und ersetzen

Beitrag lesen

Hallo,

$z[1] = str\_replace("".$\_GET["s"]."", ...  

Wozu hängst du an den String, den du verarbeitest, vorne und hinten nochmal einen Leerstring an, was den Ausdruck im Endeffekt unverändert lässt?
Manche notieren das so (also zumindest einen Leerstring am Anfang), weil damit als Nebenwirkung ein Typecast zu String einhergeht.

ja, darüber habe ich auch kurz nachgedacht, weil ich solche Kniffe selbst gelegentlich einsetze. Aber die Werte in $_GET sind "von Natur aus" schon Strings, also hielt ich das als Erklärung für unpassend.

Solche Nebenwirkungen auszunutzen, besonders wenn die dafür notwendige Syntax auf den ersten Blick überflüssig aussieht, kann man nicht gerade als verständliches Programmieren bezeichnen.

Das stimmt, aber manche dieser Kniffe, mit denen man einen impliziten Typecast erzwingt, sind inzwischen so verbreitet, dass man sie beinahe als allgemein bekannt voraussetzen kann - etwa die Multiplikation mit 1, um eine Interpretation als Number zu erzwingen.

Allerdings stehen in $_GET und $_POST immer String-Werte *). Ein Typecast zu String bringt keine Änderung. Damit können die Anführungszeichen komplett entfallen und es muss auch kein expliziter Typecast notiert werden.

Sach ich doch. ;-)

*) Die Ausnahme mit den Arrays und dass man selbst andere Datentypen in $_GET/$_POST ablegen kann, lass ich der Einfachheit halber mal unerwähnt.

Daran hätte ich jetzt nicht einmal gedacht. Danke fürs Nicht-Erwähnen.

Schönes Wochenende,
 Martin

--
Datenbanken speichern keine User.
Das liegt daran, daß Datenbanken mit der Lebensmittelversorgung für gespeicherte biologische Lebensformen derzeit noch Probleme haben.
  (Christoph Schnauß)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(