PHP 大于 2048 个字符的字符串变为空

PHP string larger than 2048 charatcter turns tu null

与文档相矛盾,在接下来的循环中(我正在创建一个select)当变量$retval达到2048个字符时,它被设置为null

    foreach ($cache_ecmcategories as $category) {
        $retval.= '<option value="'.$category['rowid'].'"';
        if (($isfilter ? $category['label'] : $category['rowid']) == $defaulttx)
            $retval.= ' selected="selected"';
        $retval.= '>'.$category['label'].'</option>'; <== This line generate the problem
    }

另外,将PHP版本从5.6.25换成7.0.10,问题依旧

这种奇怪行为的原因是什么?

我无法使用以下脚本在我的服务器上重现您的问题:

<?php
$foo='';
for($i=0; $i < 1000; $i++) $foo .= "cur:$i ";
var_dump($foo);

即使是额外的 $foo .= NULL; 也不会触发我的错误。 您真的确定该错误发生在您发布的代码上吗?您是否尝试添加额外的调试语句?