是否可以重写此方法以使用yield
?
该方法遍历多维数组并编辑每个值(去除无效的 UTF8 字符(
public function strip_invalid_utf8($input){
if(is_array($input)){
foreach($input as &$value){
$value = $this->strip_invalid_utf8($value);
}
return $input;
}
else{
return filter_utf8($input);
}
}
我想说不。
基于这个伟大答案的摘录:
生成器函数的核心是 yield 关键字。在最简单的形式中,yield 语句看起来很像 return 语句,不同之处在于 yield 不是停止函数的执行并返回,而是为遍历生成器的代码提供一个值并暂停生成器函数的执行。
除非你需要在能够输出值的同时继续执行函数,否则我会说你不需要转换为生成器函数。