Только сегодня узнал))))

Духовность™

Продвинутый новичок
PHP:
ini_set("display_errors", true);
error_reporting(E_ALL);

function foo(integer $data) {}
$a = 123;
foo($a);
Catchable fatal error: Argument 1 passed to foo() must be an instance of integer, integer given
))))

коллега подсказал такое:

PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);

set_error_handler('handle');

function foo(integer $p1, bool $p2) {}

$param1 = 123;
$param2 = 'строка, а не булев!';
foo($param1, $param2);

function handle($lvl, $msg)
{
	static $_types = array(
		'boolean,'   => 'boolean',
		'bool,'      => 'boolean',
		'integer,'   => 'integer',
		'int,'       => 'integer',
		'float,'     => 'float',
		'double,'    => 'float',
		'real,'      => 'float',
		'string,'    => 'string',
		'resource,'  => 'resource'
	);
	
	if ($lvl == E_RECOVERABLE_ERROR) {
		$errmsg = explode(' ', $msg, 13);
		if (isset($_types[$errmsg[10]]) && $_types[$errmsg[10]] == $errmsg[11]) {
			return true;
		}
		return false;
	}
}
 
Сверху