Rolf B: Regex mal wieder (Parameter in Funktionsaufruf in Anführungszeichen setzen)

Beitrag lesen

Hallo Jörg,

Und die php-Entwickler dachten sich wohl...

Ich nehme an, dass sich Rasmus Lerdorf zu der Zeit, wo er die Personal Home Page Tools bzw. den Forms Interpreter baute, hauptsächlich Gedanken um Bequemlichkeit gemacht hat. Als er zusammen mit Andi und Zeev PHP3 entwickelte, schien es schon Konstanten zu geben, aber die PHP 3 Doku, die ich kenne, weiß nichts von define(). Dafür finde ich erst in PHP 4, also 1999, einen Beleg. Angesichts der diversen antiken Unsäglichkeiten von PHP dürfte die Annahme fundiert sein, dass Sauberkeit kein priorisiertes Kriterium für den Sprachentwurf war.

Ob z.b. bei einem int-Parameter in einen int konvertiert wird, weiß ich nicht. Könnte man aber leicht herausfinden.

Ab PHP 7.0: wenn das Argument in ein int konvertierbar ist, dann ja. Ansonsten wird ein TypeError geworfen. Bis PHP 5.6: PHP möchte ein Objekt einer Klasse namens "int" sehen und wirft einen "Catchable fatal error", wenn es was anderes bekommt. Falls man auf die dumme Idee gekommen ist, sowas wirklich zu tun, fliegt der Code mit PHP 7 auf die Nase: "Cannot use 'int' as class name as it is reserved".

Sandbox

Rolf

--
sumpsi - posui - obstruxi