在函数中赋值后变量的值没有改变
Value of variable has not changed after assignment in function
我这样设置 $fe
变量:
<?php
$fe = 0;
echo '<font color="red">Alert! Site is still in development! Bugs will be fixed!<br>';
?>
<?php if ($_GET['p'] == "smoke") { ?>
<?php } elseif ($_GET['p'] == "heg") { ?>
<?php } elseif ($_GET['p'] == "flash") { ?>
<?php } elseif ($_GET['p'] == "molotov") { ?>
<?php } else { l(); } ?>
<?php function l() {
$fe = 1;
echo '<a href="../mirage?p=smoke">Smokes</a><br><a href="../mirage?p=heg">HEGs</a><br><a href="../mirage?p=flash">Flashes</a><br><a href="../mirage?p=molotov">Molotovs</a>';
} ?>
但是在下面的代码中,总是执行 if ($fe == 0)
块,无论参数 p
是什么:
<div class="topleftcorner">
<?php
if ($fe == 0) {
echo '<a href="../mirage"><-- Back</a>';
} elseif ($fe == 1) {
echo '<a href="../../csgo"><-- Back</a>';
}
?>
</div>
我做错了什么?
两个$fe
变量不是同一个变量。这个:
function l() {
$fe = 1;
//... etc
}
... 仅存在于该函数中,它与另一个全局函数无关,因此 $fe
对于最后一个代码块仍然为 0。
一个快速的解决方案是将该变量声明为相同的全局变量,使用 global
keyword:
function l() {
global $fe;
$fe = 1;
//... etc
}
但是有人可能想知道为什么你真的想在一个函数中这样做。
我这样设置 $fe
变量:
<?php
$fe = 0;
echo '<font color="red">Alert! Site is still in development! Bugs will be fixed!<br>';
?>
<?php if ($_GET['p'] == "smoke") { ?>
<?php } elseif ($_GET['p'] == "heg") { ?>
<?php } elseif ($_GET['p'] == "flash") { ?>
<?php } elseif ($_GET['p'] == "molotov") { ?>
<?php } else { l(); } ?>
<?php function l() {
$fe = 1;
echo '<a href="../mirage?p=smoke">Smokes</a><br><a href="../mirage?p=heg">HEGs</a><br><a href="../mirage?p=flash">Flashes</a><br><a href="../mirage?p=molotov">Molotovs</a>';
} ?>
但是在下面的代码中,总是执行 if ($fe == 0)
块,无论参数 p
是什么:
<div class="topleftcorner">
<?php
if ($fe == 0) {
echo '<a href="../mirage"><-- Back</a>';
} elseif ($fe == 1) {
echo '<a href="../../csgo"><-- Back</a>';
}
?>
</div>
我做错了什么?
两个$fe
变量不是同一个变量。这个:
function l() {
$fe = 1;
//... etc
}
... 仅存在于该函数中,它与另一个全局函数无关,因此 $fe
对于最后一个代码块仍然为 0。
一个快速的解决方案是将该变量声明为相同的全局变量,使用 global
keyword:
function l() {
global $fe;
$fe = 1;
//... etc
}
但是有人可能想知道为什么你真的想在一个函数中这样做。