Контроль типу


У 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");
?>