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

Variables PHP-if语句和while循环中的变量范围,variables,loops,scope,while-loop,local,Variables,Loops,Scope,While Loop,Local,我知道if语句以布尔形式给出结果 <?php if (isset($_GET['subj'])) { $sel_subj = $_GET['subj']; $sel_page = ""; ?> 我可以在if语句外使用$sel_subc或$sel_page吗?while循环的第二个问题是什么?我可以使用它之外的变量,还是将其视为局部范围内的变量 while ($page = mysql_

我知道if语句以布尔形式给出结果

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

我可以在if语句外使用$sel_subc或$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>";
        }
while($page=mysql\u fetch\u数组($page\u set)){
回声“”;
}

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

所以


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

很抱歉,我对编写的内容做了一些更改。。我认为你现在的答案会有所不同,但基本上是一样的,不像Java那样,在while循环(或者if分支)中声明的变量只在php中的该分支中可用,而在which(或者if)的范围内可用。
    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