在php中如何通过分支条件返回全局变量?
我写这个web应用程序是为了计算两个城市之间的航空旅行距离,如果我填写出发机场和目的地机场,它将直接计算。 如果我填写了“via”输入字段,那么我必须将其作为一个中间城市来计算旅行距离。我不知道如何设置条件取决于是否已填充过孔。我的代码哪里出了问题?我将输入字段连接到数据库并检索信息。 这是我的html部分:在php中如何通过分支条件返回全局变量?,php,Php,我写这个web应用程序是为了计算两个城市之间的航空旅行距离,如果我填写出发机场和目的地机场,它将直接计算。 如果我填写了“via”输入字段,那么我必须将其作为一个中间城市来计算旅行距离。我不知道如何设置条件取决于是否已填充过孔。我的代码哪里出了问题?我将输入字段连接到数据库并检索信息。 这是我的html部分: <div> From <div class="textinput"> <input type="t
<div>
From
<div class="textinput">
<input type="text" id="dept" name="departure" placeholder="City name or aiport code" >
</div>
</div>
<div>
To
<div>
<input type="text" id="dest" placeholder="City name or airport code" >
</div>
</div>
<div>
Via
<div>
<input type="text" id="via" placeholder="City name or airport code" >
</div>
</div>
我认为您在变量范围方面遇到了问题
$co2
和$miles
将您的echojson_编码(数组('co2'=>$co2,'miles'=>$miles))代码>直接()和间接()的内部
您必须从函数中返回一些内容,例如:
function direct($dept, $dest)
{
// ...
return [$co2, $miles];
}
function indirect($dept, $dest, $via)
{
// ...
return [$co2, $miles];
}
它返回一个数组,$co2
和$miles
分别作为第一个和第二个元素。然后,在代码中:
if (isset($_POST['via'])) {
list($co2, $miles) = indirect($dept, $dest, $_POST['via']);
} else {
list($co2, $miles) = direct($dept, $dest);
}
<>你说,你应该考虑使用/学习准备好的陈述;或者,至少您应该使用以下语句来转义SQL语句中的变量,例如:
. 它们不再得到维护。看到了吗?相反,学习,并使用或-将帮助您决定哪一个。谢谢,但它仍然不起作用。结果是0.00ah是的,您还需要将$dest
和$dept
传递到您的函数中。它们也超出了范围。请看我上面更新的答案。不幸的是,我不是一个数学高手,所以我无法帮助你计算球体周围的距离。这可能完全是另一个问题。尝试用不同的标签发布新问题。如果您不介意,请将我的答案标记为已接受:)。
function direct($dept, $dest)
{
// ...
return [$co2, $miles];
}
function indirect($dept, $dest, $via)
{
// ...
return [$co2, $miles];
}
if (isset($_POST['via'])) {
list($co2, $miles) = indirect($dept, $dest, $_POST['via']);
} else {
list($co2, $miles) = direct($dept, $dest);
}
$strSQL1 = sprintf("SELECT display,lat,longi FROM airport WHERE display='%s'",
mysql_real_escape_string($dept)
);