У PHP 5 є можливість використання контролю типів. При передачі параметром є можливість перевірити дані на такі типи: об’єкти (шляхом вказівки імені класу в прототипі функції), інтерфейси, масиви, колбеки з типом callable (починаючи з PHP 5.4).
Приклад використання:
<?php
class MyClass {
public function names(array $names) { // тип array
$res = "<ul>";
foreach($names as $name) {
$res .= "<li>{$name}</li>";
}
return $res .= "</ul>";
}
public function otherClassTypeFunc(OtherClass $otherClass) { // тип OtherClass
return $otherClass->var1;
}
}
$obj = new MyClass;
$names = array(
'Іван Андрєєв',
'Олег Симонов',
'Андрій Єфремов',
'Олексій Самсонов'
);
echo $obj->names($names); // працює
$names = "Олег Симонов";
// отримаємо фатальну помилку: Argument 1 passed to MyClass::names() must be of the type array, string given
echo $obj->names($names);
// отримаємо фатальну помилку: Argument 1 passed to MyClass::names() must be an instance of OtherClass, string given
echo $obj->otherClassTypeFunc("test string");
?>