Explizite Typen

Nord-Süd-Richtung

Erfahrenes Mitglied
Hallo allerseits,

ist es möglich für Funktionen/Klassen die Standardtypen explizit zu verlangen? Mit eigenen Typen geht es ja:
PHP:
class foo{
  private $bar;
  public function __construct(bar $obj){
    $this->bar = $obj;
  }
}
class bar{
}
$bar = new bar();
$foo = new foo($bar);
$foo = new foo(1.234); //Fehler da keine Instanz von bar

Ich habe es schon mit int,float usw versucht, allerdings wird mir dann als Fehlermeldung ausgeben, dass ich diese Datentypen nirgendwo deklariert habe. Gibt es da einen Trick oder ist es so nicht möglich?
Ich möchte nur ungern workarounds ala if( !is_int(1.3) )... nutzen.
 
Ich meinte, man kann das nur mit Klassen aber nicht mit native Typen

PHP:
class Foo{
}

class Bar{
    //das sollte gehen
    public function __construct(Bar $bar){}

    //das sollte nicht gehen
    public function __construct(int $bar){}
}

ALso so wir du es hast. Hm.. musst du ggf die class Bar vor der Class Foo definieren?
 
PHP:
//das sollte gehen
public function __construct(Bar $bar){}

Es wird nur schwierig werden, ein Objekt der Klasse Bar zu erzeugen ohne vorher ein Objekt der Klasse Bar instanziert zu haben ;)
 
Zurück