Rolf b: Quicktip: Rest-Parameter für typisierte Arrays

Beitrag lesen

Zwei Anmerkungen hätte ich.

  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.

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

function ints (int ...$rest) : array {
  return $rest;
}
var_export(ints(1,2,3));
if (1 > 2)
   var_export(ints('foo')); // type error

wirft keinen Fehler. Sollte es bei statischem Check aber.

Rolf