bien que ce soit facultatif, il est normalement possible de typer les paramètres attendus d'une fonction ou méthode, comme par exemple en Java.
Exemple :
class Foo{} class Bar { public function __construct(Foo $foo){} } class Plop { public function __construct(string $text){} } $myBar = new Bar(new Foo()); $myPlop = new Plop("Hello world !");
$myBar, pas de souci. Mais $myPlop, erreur :
Catchable fatal error: Argument 1 passed to Plop::__construct() must be an instance of string, string (…)