Php执行函数

Php执行函数,php,python,exec,return-value,Php,Python,Exec,Return Value,我无法理解为什么php中的返回值不起作用。有人能帮我吗 <?php exec("xyz.py",$output,$return); foreach($output as $item){ echo "$item"; } echo $return; ?> 无论xyz.py返回什么值,输出总是Hello0 提前感谢。根据PHP,exec的第三个参数($return,在您的示例中)的工作方式如下: 如果return_var参数与output参数一起出现,则已执行命令的返回状态将写入该变量

我无法理解为什么php中的返回值不起作用。有人能帮我吗

<?php
exec("xyz.py",$output,$return);
foreach($output as $item){
echo "$item"; 
}
echo $return;
?>
无论xyz.py返回什么值,输出总是Hello0

提前感谢。

根据PHP,exec的第三个参数(
$return,在您的示例中)的工作方式如下:

如果return_var参数与output参数一起出现,则已执行命令的返回状态将写入该变量

由于python程序运行良好,因此返回状态应为0(无错误)

这可能是您想要的:

import sys
def func():
  print ('Hello')
  return 21
sys.exit(func())

Return参数表示exec()函数的状态,而不是程序返回的内容

-1=错误


0=success

将其附加到执行字符串中,这允许您捕获任何错误输出:

2>&1 &
根据你的例子:

exec('xyz.py 2>&1 &', $output);
echo $output;

所以,如果我想返回python脚本返回输出的值,我可以使用exec函数吗?或者还有其他可用的函数吗?以上是您想要的吗?没有,现在输出是HelloHello,我想要输出Hello21修改python脚本并使用原始PHP脚本如何?有没有可以输出返回值的函数?没有,您只需在末尾打印返回值,然后使用passthru()获取最后一行。您可以在引号中附加返回值并打印它。因此搜索和获取它会更容易。在python脚本中尝试
sys.exit(21)
exec('xyz.py 2>&1 &', $output);
echo $output;