PHP返回长字符串不能用作字符串

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

我有一个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.= '<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[提高处理速度]为结果数组应用分页或筛选器。