无法在 if-else 语句中从 php 执行 python 脚本

Cannot execute a python script from php inside an if-else statement

我在 raspberry pi 并且我正在使用 apache 服务器。如果 url 中的 id 是偶数,PHP 代码将执行 python 脚本。 python 脚本在 if-else 块之外时运行得很好。

<?php
$op=shell_exec("python /home/pi/hi.py");
echo $op;

$id = intval($_GET["id"]);
echo $id."\n";
?>

但是当放在 if-else 块中时它无法工作。

<?php    
$id = intval($_GET["id"]);
echo $id."\n";

if($id%2==0)
echo "Even";
$op=shell_exec("python /home/pi/hi.py");
echo $op;
else
echo "Odd";   
?>

我是 php 的新手,我似乎无法理解这个问题。

else 在这种情况下实际上是一个语法错误。 if 之后的语句没有括号,PHP 期望 one 语句跟在它后面。由于不止一个,else到达的时候出乎意料。

添加大括号应该可以解决问题。

if ($id%2==0) {
    echo "Even";
    $op=shell_exec("python /home/pi/hi.py");
    echo $op;
} else {
    echo "Odd";
}

一般来说,我认为 总是 使用大括号是个好主意,即使你只有一个语句。这样当你以后添加更多语句时,你就不会 运行 陷入这个问题。