在php中如何通过分支条件返回全局变量?

在php中如何通过分支条件返回全局变量?,php,Php,我写这个web应用程序是为了计算两个城市之间的航空旅行距离,如果我填写出发机场和目的地机场,它将直接计算。 如果我填写了“via”输入字段,那么我必须将其作为一个中间城市来计算旅行距离。我不知道如何设置条件取决于是否已填充过孔。我的代码哪里出了问题?我将输入字段连接到数据库并检索信息。 这是我的html部分: <div> From <div class="textinput"> <input type="t

我写这个web应用程序是为了计算两个城市之间的航空旅行距离,如果我填写出发机场和目的地机场,它将直接计算。 如果我填写了“via”输入字段,那么我必须将其作为一个中间城市来计算旅行距离。我不知道如何设置条件取决于是否已填充过孔。我的代码哪里出了问题?我将输入字段连接到数据库并检索信息。 这是我的html部分:

  <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

将您的echo
json_编码(数组('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)
);