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;
也不会触发我的错误。
您真的确定该错误发生在您发布的代码上吗?您是否尝试添加额外的调试语句?
与文档相矛盾,在接下来的循环中(我正在创建一个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;
也不会触发我的错误。
您真的确定该错误发生在您发布的代码上吗?您是否尝试添加额外的调试语句?