大于2048个字符的PHP字符串将变为null

时间:2019-02-04 07:02:21

标签: php string string-length

与文档相反,在下一个周期(我正在创建一个选择)中,当变量$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,问题仍然相同

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

1 个答案:

答案 0 :(得分:1)

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

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

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