mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Skip non-existing properties returned by __sleep()
This commit is contained in:
parent
d9a96629fe
commit
657f756ccd
6 changed files with 11 additions and 15 deletions
|
@ -391,6 +391,9 @@ PHP 8.0 UPGRADE NOTES
|
||||||
using serialize_precision rather than precision. In a default configuration,
|
using serialize_precision rather than precision. In a default configuration,
|
||||||
this means that floating-point numbers are now printed with full accuracy
|
this means that floating-point numbers are now printed with full accuracy
|
||||||
by these debugging functions.
|
by these debugging functions.
|
||||||
|
. If the array returned by __sleep() contains non-existing properties, these
|
||||||
|
are now silently ignored. Previously, such properties would have been
|
||||||
|
serialized as if they had the value NULL.
|
||||||
|
|
||||||
- tidy:
|
- tidy:
|
||||||
. The $use_include_path parameter, which was not used internally, has been
|
. The $use_include_path parameter, which was not used internally, has been
|
||||||
|
|
|
@ -27,10 +27,8 @@ var_dump($t);
|
||||||
__sleep called
|
__sleep called
|
||||||
|
|
||||||
Notice: serialize(): "b" returned as member variable from __sleep() but does not exist in %sbug14293.php on line %d
|
Notice: serialize(): "b" returned as member variable from __sleep() but does not exist in %sbug14293.php on line %d
|
||||||
O:1:"t":2:{s:1:"a";s:5:"hello";s:1:"b";N;}
|
O:1:"t":1:{s:1:"a";s:5:"hello";}
|
||||||
object(t)#%d (2) {
|
object(t)#%d (1) {
|
||||||
["a"]=>
|
["a"]=>
|
||||||
string(5) "hello"
|
string(5) "hello"
|
||||||
["b"]=>
|
|
||||||
NULL
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,17 +35,13 @@ var_dump(unserialize($ss));
|
||||||
var_dump(unserialize($si));
|
var_dump(unserialize($si));
|
||||||
?>
|
?>
|
||||||
--EXPECT--
|
--EXPECT--
|
||||||
O:10:"testString":2:{s:1:"a";b:1;s:1:"1";N;}
|
O:10:"testString":1:{s:1:"a";b:1;}
|
||||||
O:11:"testInteger":2:{s:1:"a";b:1;s:1:"1";N;}
|
O:11:"testInteger":1:{s:1:"a";b:1;}
|
||||||
object(testString)#3 (2) {
|
object(testString)#3 (1) {
|
||||||
["a"]=>
|
["a"]=>
|
||||||
bool(true)
|
bool(true)
|
||||||
["1"]=>
|
|
||||||
NULL
|
|
||||||
}
|
}
|
||||||
object(testInteger)#3 (2) {
|
object(testInteger)#3 (1) {
|
||||||
["a"]=>
|
["a"]=>
|
||||||
bool(true)
|
bool(true)
|
||||||
["1"]=>
|
|
||||||
NULL
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,4 +26,4 @@ Notice: serialize(): "pub" returned as member variable from __sleep() but does n
|
||||||
Notice: serialize(): "prot" returned as member variable from __sleep() but does not exist in %s on line %d
|
Notice: serialize(): "prot" returned as member variable from __sleep() but does not exist in %s on line %d
|
||||||
|
|
||||||
Notice: serialize(): "priv" returned as member variable from __sleep() but does not exist in %s on line %d
|
Notice: serialize(): "priv" returned as member variable from __sleep() but does not exist in %s on line %d
|
||||||
string(53) "O:4:"Test":3:{s:3:"pub";N;s:4:"prot";N;s:4:"priv";N;}"
|
string(15) "O:4:"Test":0:{}"
|
||||||
|
|
|
@ -861,7 +861,6 @@ static int php_var_serialize_get_sleep_props(
|
||||||
|
|
||||||
php_error_docref(NULL, E_NOTICE,
|
php_error_docref(NULL, E_NOTICE,
|
||||||
"\"%s\" returned as member variable from __sleep() but does not exist", ZSTR_VAL(name));
|
"\"%s\" returned as member variable from __sleep() but does not exist", ZSTR_VAL(name));
|
||||||
zend_hash_add(ht, name, &EG(uninitialized_zval));
|
|
||||||
zend_tmp_string_release(tmp_name);
|
zend_tmp_string_release(tmp_name);
|
||||||
} ZEND_HASH_FOREACH_END();
|
} ZEND_HASH_FOREACH_END();
|
||||||
|
|
||||||
|
|
|
@ -19,4 +19,4 @@ var_dump(str_replace("\0", '\0', $data));
|
||||||
?>
|
?>
|
||||||
--EXPECTF--
|
--EXPECTF--
|
||||||
Notice: serialize(): "no_such" returned as member variable from __sleep() but does not exist in %s on line %d
|
Notice: serialize(): "no_such" returned as member variable from __sleep() but does not exist in %s on line %d
|
||||||
string(130) "O:3:"foo":4:{s:12:"\0foo\0private";s:7:"private";s:12:"\0*\0protected";s:9:"protected";s:6:"public";s:6:"public";s:7:"no_such";N;}"
|
string(114) "O:3:"foo":3:{s:12:"\0foo\0private";s:7:"private";s:12:"\0*\0protected";s:9:"protected";s:6:"public";s:6:"public";}"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue