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

时间:2017-04-12 16:38:16

标签: php python apache raspberry-pi raspbian

我使用的是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的新手,我似乎无法理解这个问题。

1 个答案:

答案 0 :(得分:1)

在这种情况下,

else实际上是语法错误。如果if之后的语句没有括号,那么PHP需要一个语句来跟随它。由于存在多个,else在到达时是意外的。

添加大括号应解决问题。

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

一般来说,即使您只有一个声明,我认为总是使用大括号是个好主意。这样,当您稍后添加更多语句时,您将不会遇到此问题。

相关问题