2016-07-26 52 views
0

我設置$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> 

我在做什麼錯?

回答

4

這兩個$fe變量不是同一個變量。這一個:

function l() { 
    $fe = 1; 
    //... etc 
} 

...只存在於該函數,它沒有任何與其他全球性的,所以$fe仍然是0,最後一個代碼塊。

一個快速的解決方案是聲明變量是相同的,全局變量,與global keyword

function l() { 
    global $fe; 
    $fe = 1; 
    //... etc 
} 

但有可能想知道爲什麼你真的想這樣做的一個功能。