mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00

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
52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
--TEST--
|
|
Various error conditions for ReflectionReference
|
|
--FILE--
|
|
<?php
|
|
|
|
try {
|
|
new ReflectionReference();
|
|
} catch (Error $e) {
|
|
echo $e->getMessage(), "\n";
|
|
}
|
|
|
|
try {
|
|
ReflectionReference::fromArrayElement(new stdClass, "test");
|
|
} catch (TypeError $e) {
|
|
echo $e->getMessage(), "\n";
|
|
}
|
|
|
|
try {
|
|
ReflectionReference::fromArrayElement([], 1.5);
|
|
} catch (TypeError $e) {
|
|
echo $e->getMessage(), "\n";
|
|
}
|
|
|
|
try {
|
|
$ary = [0, 1, 2];
|
|
ReflectionReference::fromArrayElement($ary, 3);
|
|
} catch (ReflectionException $e) {
|
|
echo $e->getMessage(), "\n";
|
|
}
|
|
|
|
try {
|
|
$ary = [&$ary];
|
|
$ref = ReflectionReference::fromArrayElement($ary, 0);
|
|
var_dump(serialize($ref));
|
|
} catch (Exception $e) {
|
|
echo $e->getMessage(), "\n";
|
|
}
|
|
|
|
var_dump(unserialize('O:19:"ReflectionReference":0:{}'));
|
|
|
|
?>
|
|
--EXPECTF--
|
|
Call to private ReflectionReference::__construct() from invalid context
|
|
ReflectionReference::fromArrayElement(): Argument #1 ($array) must be of type array, stdClass given
|
|
ReflectionReference::fromArrayElement(): Argument #2 ($key) must be of type string|int, float given
|
|
Array key not found
|
|
Serialization of 'ReflectionReference' is not allowed
|
|
|
|
Warning: Erroneous data format for unserializing 'ReflectionReference' in %s on line %d
|
|
|
|
Notice: unserialize(): Error at offset 30 of 31 bytes in %s on line %d
|
|
bool(false)
|