1
0
mirror of https://github.com/php/php-src.git synced 2026-03-26 01:02:25 +01:00
Files
archived-php-src/ext/reflection/tests/ReflectionClass_getMethod_002.phpt
Máté Kocsis fbe30592d6 Improve type error messages when an object is given
From now on, we always display the given object's type instead of just reporting "object".
Additionally, make the format of return type errors match the format of argument errors.

Closes GH-5625
2020-05-26 19:06:19 +02:00

67 lines
1.5 KiB
PHP

--TEST--
ReflectionClass::getMethod() - error cases
--CREDITS--
Robin Fernandes <robinf@php.net>
Steve Seear <stevseea@php.net>
--FILE--
<?php
class C {
function f() {}
}
$rc = new ReflectionClass("C");
echo "Check invalid params:\n";
try {
var_dump($rc->getMethod());
} catch (TypeError $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod("f", "f"));
} catch (TypeError $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod(null));
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod(1));
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod(1.5));
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod(true));
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod(array(1,2,3)));
} catch (TypeError $e) {
echo $e->getMessage() . "\n";
}
try {
var_dump($rc->getMethod(new C));
} catch (TypeError $e) {
echo $e->getMessage() . "\n";
}
?>
--EXPECT--
Check invalid params:
ReflectionClass::getMethod() expects exactly 1 parameter, 0 given
ReflectionClass::getMethod() expects exactly 1 parameter, 2 given
Method does not exist
Method 1 does not exist
Method 1.5 does not exist
Method 1 does not exist
ReflectionClass::getMethod(): Argument #1 ($name) must be of type string, array given
ReflectionClass::getMethod(): Argument #1 ($name) must be of type string, C given