1unitedpower: Quicktip: Rest-Parameter für typisierte Arrays

Beitrag lesen

  1. Ohne declare(strict_types=1); geht ints(1, '2', 3) ohne Fehler durch. Ob das richtig ist oder nicht, weiß der Jongleur... (der vom PHP Type Juggling). Mit dem declare wirft es den Type Error.

Mit declare(strict_types=1); sagst du dem PHP-Laufzeitsystem, dass du Type-Coercing unterbinden möchtest.

  1. Es ist definitiv ein Laufzeitcheck, und nicht statisch, wie von Dir unterstellt.

Nein, hier bist du dem selben Missverständnis wie pl aufgelaufen. Du hast das Programm durch den PHP-Interpreter gejagt ohne vorher einen statischen Typchecker zu fragen. Anders als Java oder C++ hat PHP keinen eingebauten statischen Typchecker. Falls du also von Typchecks zur Entwicklungszeit profitieren willst, musst du das mit einem externen statischen Typchecker komplementieren.