2017-04-12 30 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"; 
} 

一般來說,我認爲這是一個好主意,只是始終使用大括號,即使你只有一個聲明。這樣當你稍後添加更多的語句時,你將不會遇到這個問題。