我无法理解为什么 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
提前致谢。
我无法理解为什么 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
提前致谢。
根据 PHP文档,exec 的第三个参数($return
在您的示例中)的工作方式如下:
如果 return_var 参数与输出参数一起存在,则执行命令的返回状态将写入此变量
由于您的 python 程序运行良好,因此返回状态应为 0(无错误)。
这可能是你想要的:
import sys
def func():
print ('Hello')
return 21
sys.exit(func())
返回参数表示 exec() 函数的状态,而不是程序返回的内容。
-1 = 错误
0 = 成功
将此附加到您的执行字符串中,这样您就可以捕获任何错误输出:
2>&1 &
所以根据你的例子:
exec('xyz.py 2>&1 &', $output);
echo $output;