2017-04-12 15 views
-1

私はラズベリーパイにおり、私はApacheサーバーを使用しています。 PHPコードは、URL内のidが偶数である場合に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はという1つのステートメントに従うと予測しています。複数あるため、elseに達すると予期せぬことが起こります。

中かっこを追加すると問題が解決するはずです。

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

は一般的に、私はそれはあなたが唯一の文を持っている場合でも、ちょうどは常には、中括弧を使用することをお勧めだと思います。このようにして後で文を追加すると、この問題は発生しません。

関連する問題