1unitedpower: assoziative Werte mit __set() und Index in numerisches array einfügen?

Beitrag lesen

Danke für den Begriff

Immer gerne.

Mit PHPDoc-Kommentaren, würde schon dein Editor den Rotstift in der Zeile $foobar->fuz = 42; ansetzen und dir mitteilen, dass es da einen Typfehler gibt.

Soweit ich weis kann man bei primitiven un Objekt Typen nur in funktionen und methoden machen:

function foobar( string $fuz, int $baz, Tok $t ) : array {}

und nicht in Objekt eigenschaften, leider

class Foobar {
  private string $fuz, int $baz, Tok $t;
}

Richtig, mit nativem PHP geht das nicht. Aber mit PHP + PHPDoc geht das:

class Foobar {

  /**
   * @var string
   */
  private $fuz

  /**
   * @var int
   */
  private int $baz

  /**
   * @var Toc
   */
  private $t;
}

PHPDoc-Kommentare werden von Editoren ausgelesen und die können die Informationen für ihre Autovervollständigung und ihre Typchecker verwenden. Wenn das nicht reicht, dann helfen gewöhnliche Getter- und Setter-Methoden, wie in meinem ersten Beispiel. Die dienen nur dazu, den Zugriff auf die privaten Eigenschaften so zu kapseln, dass sie typsicher sind.