PHP返回长字符串不能用作字符串
我有一个for循环,它在一个大数组中迭代PHP返回长字符串不能用作字符串,php,arrays,string,return,return-value,Php,Arrays,String,Return,Return Value,我有一个for循环,它在一个大数组中迭代$result。每个数组项$row用于生成字符串的新行$line。此字符串连接到$str中。为了保留内存,我使用unset($result[$I])清除原始数组中已处理的每个数组项。这看起来像这样: $resultcount = count($result); for($i=0; $i<$resultcount; ++$i){ $row = $result[$i]; $line = do_something($row); $str
$result
。每个数组项$row
用于生成字符串的新行$line
。此字符串连接到$str
中。为了保留内存,我使用unset($result[$I])
清除原始数组中已处理的每个数组项。这看起来像这样:
$resultcount = count($result);
for($i=0; $i<$resultcount; ++$i){
$row = $result[$i];
$line = do_something($row);
$str.= '<tr><td>'.$line.'</td></tr>';
unset($result[$i]);
}
return $str;
$resultcount=count($result);
对于($i=0;$i而言,您似乎以矛盾的方式描述返回值:
在这种情况下,返回值只是空的
但是
但是我可以使用strlen()来获得正确的结果(1310307),因此返回值字符串的总长度为1'310'307字节
某些内容不能同时为空和具有长度
我已经测试过返回一个这么长的字符串,它对我来说很好。返回越来越大的字符串到超过内存限制的点,这会触发显式致命错误
在技术方面,字符串可以远远大于一百万个字符:
注意:从PHP7.0.0开始,64位版本中的字符串长度没有特殊限制。在32位版本和早期版本中,字符串的最大长度可达2GB(最大2147483647字节)
我怀疑失败的操作与您如何使用结果有关,而不是与函数返回有关。不要从后端发送HTML。只发送JSON格式的数据,并使用javascript在前端生成表。这样,请求的完成速度也会更快,因为通过网络发送到客户端bro的字节数会更少wser.Maybe related:使用query或使用array_filter[提高处理速度]为结果数组应用分页或筛选器。