2017-04-12 96 views
-1

我在树莓派上,我使用的是Apache服务器。如果url中的id是偶数,PHP代码将执行python脚本。 python脚本在if-else块之外时运行得非常好。无法在if-else语句中从php执行python脚本

<?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

因为if后面有多个语句,所以你还需要一些括号来表示if/else。 –

+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"; 
} 

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