PHP-作用域相关

doupoo 2020-01-11

作用域指的是作用范围,在php中,

  函数内的有作用的范围就叫局部作用域,在里面定义的变量也就是局部变量,

  在函数外有作用的范围就叫全局作用域,在全局作用域里定义的变量也就是全局变量

一:全局不能访问局部变量,局部不能访问全局变量

  在php中,全局和局部之间是不能直接访问数据变量,全局变量就只能在全局中直接使用,局部变量就只能在局部作用域中使用

 PHP-作用域相关

 二:超全局变量

<?php 
    if (isset($_GET["num"])) {

        function getnum(){
            return $_GET["num"];
        }
         echo getnum();
    }
 ?>

 <form action="" method="get">
    数字:<input type="text" name="num">
    <input type="submit" value="提交">
 </form>

 在php中,超全局变量也就是能在全局中用,和局部中都能使用,像预定义变量其实都是超全局变量,如上代码,$_GET这个预定义变量,不管是在函数外(全局作用域)还是在函数内(局部作用域)都起作用,这里有一个特殊的超全局变量$GLOBALS,她是一个保存着全局和局部所有变量的数组,通过他能解决不同作用域不能访问的问题,还有一种是global关键词,设置了global关键词通过引用关系 把局部引进全局或者把全局引进局部

if (isset($_GET["num1"])) {
        $res = $_GET["num1"];
        function demo(){
            // echo $num1;Undefined variable: num1 
            echo ($GLOBALS[‘res‘]) ;//通过$GLOBALS[‘变量名‘]访问
        }
        demo();
          
    }

相关推荐