我有一个大函数,我必须调用50-100次。以前我用过类似的bash脚本:
#!/bin/bash
for i in {1..50}
do
RET=0
until [ ${RET} -eq 1 ]; do
php /scripts/cli.php $i
RET=$?
done
done
但是我不擅长bash脚本,因为我需要用返回的值来增强逻辑,所以我尝试用这样的函数在纯php中实现它:
<?
require_once('cli.php');
for($cnt=1; $cnt<=50; $cnt++){
$cli = cli($cnt);
}
?>
但这种方法在10-15个周期后会导致分割故障。是否可以像bash脚本中那样在单独的进程中运行函数,并清理资源以避免内存泄漏?
是的,如果您需要访问子进程stdin/stdout/stderr,或者您可以使用更简单的函数:exec()或passthru(),您可以查看proc_open。
话虽如此。。PHP不应该是segfault,您使用的一定是某种有缺陷的扩展。我会更专注于解决这个问题,而不是创造变通办法。