PHP - if语句和while循环中的变量范围

时间:2013-08-13 09:50:56

标签: variables loops scope while-loop local

我知道if语句将结果作为布尔值。

     <?php 
            if (isset($_GET['subj'])) {
            $sel_subj = $_GET['subj'];
            $sel_page = "";
     ?>

我可以在if语句之外使用$ sel_subj或$ sel_page吗? while循环的第二个问题?我可以在其外部使用变量或在本地范围内使用它吗?

while ($page = mysql_fetch_array($page_set)) {
                echo "<li";
                if ($page["id"] == $sel_page) { echo " class=\"selected\""; }
                echo "><a href=\"content.php?page=" . urlencode($page["id"]) .
                "\">{$page["menu_name"]}</a></li>";
        }

1 个答案:

答案 0 :(得分:2)

基本上是的,在if或while中定义的任何变量都将在if或while存在的范围内可用(因为它们是在条件中定义的,尽管它们可能没有被设置,因此您将收到未定义的警告)

所以

    function foo(){
        $i=0
        while($i==0){
           $i=1;
           $a=1;
        }

        echo $a;
        //$a is available here although it might be undefined as the condition may not have been met

    }
    echo $a //$a is not available here

理想情况下,您应首先声明变量。