【问题标题】:PHP - variable scope inside if statement and while loopPHP - if 语句和 while 循环内的变量范围
【发布时间】:2013-08-14 21:07:22
【问题描述】:

我知道 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>";
        }

【问题讨论】:

    标签: variables loops scope while-loop local


    【解决方案1】:

    基本上是的,在 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
    

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

    【讨论】:

    • 对不起,我对我写的内容做了一些更改......我认为你现在的答案会有所不同
    • 不,它基本上是一样的,不像说Java在while循环(或if分支)中声明的变量仅在php的该分支中可用,它在which(或if)的范围内可用有。
    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2016-01-12
    • 2013-11-01
    相关资源
    最近更新 更多