mirror of
https://github.com/php/php-src.git
synced 2026-04-21 23:18:13 +02:00
b10416a652
This deprecates passing null to non-nullable scale arguments of internal functions, with the eventual goal of making the behavior consistent with userland functions, where null is never accepted for non-nullable arguments. This change is expected to cause quite a lot of fallout. In most cases, calling code should be adjusted to avoid passing null. In some cases, PHP should be adjusted to make some function arguments nullable. I have already fixed a number of functions before landing this, but feel free to file a bug if you encounter a function that doesn't accept null, but probably should. (The rule of thumb for this to be applicable is that the function must have special behavior for 0 or "", which is distinct from the natural behavior of the parameter.) RFC: https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg Closes GH-6475.
28 lines
543 B
PHP
28 lines
543 B
PHP
--TEST--
|
|
Bug #72069 (Behavior \JsonSerializable different from json_encode)
|
|
--FILE--
|
|
<?php
|
|
|
|
$result = json_encode(['end' => json_decode('', true)]);
|
|
var_dump($result);
|
|
|
|
class A implements \JsonSerializable
|
|
{
|
|
function jsonSerialize()
|
|
{
|
|
return ['end' => json_decode('', true)];
|
|
}
|
|
}
|
|
$a = new A();
|
|
$toJsonData = $a->jsonSerialize();
|
|
$result = json_encode($a);
|
|
var_dump($result);
|
|
|
|
$result = json_encode($toJsonData);
|
|
var_dump($result);
|
|
?>
|
|
--EXPECT--
|
|
string(12) "{"end":null}"
|
|
string(12) "{"end":null}"
|
|
string(12) "{"end":null}"
|