1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 01:18:19 +02:00
Files
archived-php-src/ext/gmp/tests/serialize.phpt
T
Nikita Popov 902d64390e Deprecate implicit dynamic properties
Writing to a proprety that hasn't been declared is deprecated,
unless the class uses the #[AllowDynamicProperties] attribute or
defines __get()/__set().

RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
2021-11-26 14:10:11 +01:00

73 lines
1.6 KiB
PHP

--TEST--
GMP serialization and unserialization
--EXTENSIONS--
gmp
--FILE--
<?php
var_dump($n = gmp_init(42));
var_dump($s = serialize($n));
var_dump(unserialize($s));
$n = gmp_init(13);
$n->foo = "bar";
var_dump($s = serialize($n));
var_dump(unserialize($s));
var_dump(unserialize('C:3:"GMP":15:{s:2:"42";a:0:{}}'));
try {
unserialize('C:3:"GMP":0:{}');
} catch (Exception $e) { var_dump($e->getMessage()); }
try {
unserialize('C:3:"GMP":9:{s:2:"42";}');
} catch (Exception $e) { var_dump($e->getMessage()); }
try {
unserialize('O:3:"GMP":0:{}');
} catch (Exception $e) { var_dump($e->getMessage()); }
try {
unserialize('O:3:"GMP":1:{i:0;i:0;}');
} catch (Exception $e) { var_dump($e->getMessage()); }
try {
unserialize('O:3:"GMP":1:{i:0;s:0:"";}');
} catch (Exception $e) { var_dump($e->getMessage()); }
try {
unserialize('O:3:"GMP":2:{i:0;s:1:"0";i:1;i:0;}');
} catch (Exception $e) { var_dump($e->getMessage()); }
?>
--EXPECTF--
object(GMP)#%d (1) {
["num"]=>
string(2) "42"
}
string(27) "O:3:"GMP":1:{i:0;s:2:"2a";}"
object(GMP)#%d (1) {
["num"]=>
string(2) "42"
}
Deprecated: Creation of dynamic property GMP::$foo is deprecated in %s on line %d
string(56) "O:3:"GMP":2:{i:0;s:1:"d";i:1;a:1:{s:3:"foo";s:3:"bar";}}"
object(GMP)#%d (2) {
["foo"]=>
string(3) "bar"
["num"]=>
string(2) "13"
}
object(GMP)#1 (1) {
["num"]=>
string(2) "42"
}
string(28) "Could not unserialize number"
string(32) "Could not unserialize properties"
string(28) "Could not unserialize number"
string(28) "Could not unserialize number"
string(28) "Could not unserialize number"
string(32) "Could not unserialize properties"