无法在 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";
}
一般来说,我认为 总是 使用大括号是个好主意,即使你只有一个语句。这样当你以后添加更多语句时,你就不会 运行 陷入这个问题。
我在 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";
}
一般来说,我认为 总是 使用大括号是个好主意,即使你只有一个语句。这样当你以后添加更多语句时,你就不会 运行 陷入这个问题。