我们刚刚升级到PHP 7.3,并且正在经历一些奇怪的行为。
当我尝试运行以下代码时,PHP崩溃并显示错误消息
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 534777856 bytes) in /............./test.php on line 2
代码:
<?php
print_r($GLOBALS);
?>
如您所见,这是一个非常简单的脚本,只有一行代码。 var_export可以正常显示内容。增加内存限制只会延迟崩溃。在PHP 5.6中,它按预期工作。
您有没有遇到过PHP 7.3的相同行为?除了不使用print_r之外,您还有其他提示吗?
谢谢
PS:这是var_export的正确输出,因此$ GLOBALS确实与错误消息中建议的建议值一样远:
array(5) { ["_GET"]=> array(0) { } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(3) { ["xxxx_username"]=> string(4) "xxxx" ["printcounter"]=> string(1) "4" ["PHPSESSID"]=> string(32) "793b64887bb8b857515748bbb3d7c5cb" } ["_FILES"]=> array(0) { } ["GLOBALS"]=> array(5) { ["_GET"]=> array(0) { } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(3) { ["xxxx_username"]=> string(4) "xxxx" ["printcounter"]=> string(1) "4" ["PHPSESSID"]=> string(32) "793b64887bb8b857515748bbb3d7c5cb" } ["_FILES"]=> array(0) { } ["GLOBALS"]=> *RECURSION* } }