Php 自定义函数有一个if,它在函数之前执行

Php 自定义函数有一个if,它在函数之前执行,php,if-statement,cookies,php-7,Php,If Statement,Cookies,Php 7,我有一个功能来更改我的网站的语言,在这个功能中有一个if语句,它在两种语言(土耳其语和英语)之间进行选择,但在我运行该功能之前,if语句起作用并且条件适用,我想等到该功能执行之后 setcookie(“语言”、“tr”、time()+(86400*365)、“/”、$vars->networkSite); 函数langul(){ 如果(!isset($\u COOKIE['language'])){ $GLOBALS['langswitch']=“EN”; $GLOBALS['language'

我有一个功能来更改我的网站的语言,在这个功能中有一个if语句,它在两种语言(土耳其语和英语)之间进行选择,但在我运行该功能之前,if语句起作用并且条件适用,我想等到该功能执行之后

setcookie(“语言”、“tr”、time()+(86400*365)、“/”、$vars->networkSite);
函数langul(){
如果(!isset($\u COOKIE['language'])){
$GLOBALS['langswitch']=“EN”;
$GLOBALS['language']=“TR”;
}elseif($_COOKIE['language']=“tr”){
setcookie(“语言”、“en”、time()+(86400*365)、“/”、$vars->networkSite);
$GLOBALS['langswitch']=“EN”;
$GLOBALS['language']=“TR”;
}elseif($_COOKIE['language']==“en”){
setcookie(“语言”、“tr”、time()+(86400*365)、“/”、$vars->networkSite);
$GLOBALS['langswitch']=“TR”;
$GLOBALS['language']=“EN”;
}
}
我想在执行函数后执行if。提前谢谢你的帮助


PS:如果每次刷新页面语言开关时都尝试这样运行此代码。您可以在

上看到问题您对函数的理解似乎是错误的。您通过执行
来执行它,似乎希望它返回一个URL。实际上,它所做的是分配全局值,而不是返回任何内容

因此,您正在执行该函数,它可以按预期工作。你想做什么

if (!isset($_COOKIE['language'])) {

    $GLOBALS['langswitch'] = "EN";

} elseif ($_COOKIE['language'] === "tr") {

    $GLOBALS['langswitch'] = "EN";

} elseif ($_COOKIE['language'] === "en") {
    $GLOBALS['langswitch'] = "TR";

}
function languageSwitch (){
    if ($GLOBALS['langswitch'] == "EN"){
        echo "en";
    } elseif ($GLOBALS['langswitch'] == "TR"){
        echo "tr";
    }
}
if ($_POST['language'] == "tr"){
    $GLOBALS['langswitch'] = "EN";
    echo "test1";
} elseif ($_POST['language'] == "en"){
    $GLOBALS['langswitch'] = "TR";
    echo "test2";
}
 if ($GLOBALS['langswitch'] === "EN") {
    setcookie("language", "tr", time()+(86400 * 365), "/", $vars->networkSite);
} elseif ($GLOBALS['langswitch'] === "TR"){
    setcookie("language", "en", time()+(86400 * 365), "/", $vars->networkSite);
}
使用这样的形式

<form class="vertical-align position-relative" action="<?=$_SERVER['PHP_SELF']?>" method="post">
<button class="nav-link languageShortHand" type="submit" value="<? languageSwitch();?>" name="language"><?=  $GLOBALS['langswitch'] ?></button>
</form>


由于临时名称的建议,修复了此问题

我想在单击按钮时执行函数,然后更改cookie的值函数本身设置cookie,但按钮不负责执行函数。您需要通过在PHP中检查是否按下按钮,使函数在按下按钮时执行。表单是一种方式。你能发送一个例子或代码本身吗,我真的被这个问题搞糊涂了老实说,“我想等到函数执行之后”——这是什么意思?PHP代码是逐行执行的,因此,如果您想在另一个代码执行后再运行一些代码,只需将其放置在behindI(我使用按钮后的意思)上,然后在单击按钮后运行函数从而设置cookie。PHP在服务器上运行,Javascript在浏览器中运行,您只需提交表单(使用常用表单或AJAX)