我无法理解为什么php中的返回值不起作用。有人能帮助我吗?
<?php
exec("xyz.py",$output,$return);
foreach($output as $item){
echo "$item";
}
echo $return;
?>
xyz.py的脚本如下:
def func():
print ('Hello')
return 21
func()
无论xyz.py返回什么值
,输出总是Hello0提前致谢。
答案 0 :(得分:2)
根据PHP docs,exec的第三个参数(在您的示例中为$return
)的工作方式如下:
如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量
由于你的python程序运行正常,返回状态应为0(无错误)。
这可能是你想要的:
import sys
def func():
print ('Hello')
return 21
sys.exit(func())
答案 1 :(得分:0)
返回参数表示exec()函数的状态,而不是程序返回的状态。
-1 =错误
0 =成功
答案 2 :(得分:0)
将此附加到您的执行字符串,该字符串允许您捕获任何错误输出:
2>&1 &
根据你的例子:
exec('xyz.py 2>&1 &', $output);
echo $output;