• 技术文章 >后端开发 >PHP问题

    php怎么在方法里用外部变量

    青灯夜游青灯夜游2022-04-24 15:57:32原创148

    方法:1、利用global关键字,在方法内用“global $外部变量名;”语句导入外部变量即可;2、利用“$GLOBALS”变量,在方法内直接用“$GLOBALS['a']”语句引用外部变量即可;3、利用值传递,将外部变量用参数传递进去。

    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

    今天我用纯原生的PHP写了一个方法,想调用外部全局变量的时候,结果:要么是报错了,要么是没有任何输出?

    下面我们来聊聊原因和解决方法:

    变量范围

    在用户自定义方法(函数)中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如:

    <?php
    $a = 1; /* global scope */
    
    function Test()
    {
        echo $a; /* reference to local scope variable */
    }
    
    Test();
    ?>

    这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。

    你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能不小心就改变了一个全局变量。PHP 中全局变量在函数中使用时必须声明为 global。

    第一种解决方法:global 关键字---在函数内全局申明函数外的变量

    <?php
    $a = 1;
    $b = 2;
    $c = 3;
    function demo(){
    	global $a,$b,$c;
        echo '$a = '.$a;
        echo '<br>$b = '.$b;
        echo '<br>$c = '.$c;
    }
    demo();
    ?>

    看看输出结果为:

    1.png

    分析:

    global关键字的作用是:导入全局变量,利用global 变量1, 变量2, ...的形式把全局变量1, 变量2...导入到一个函数的局部范围内,就可以在函数内部使用在函数外部定义的全局变量了。

    使用 global 关键字需要注意一下几点:

    第二种解决方法:利用$GLOBALS超全局变量

    <?php
    $a = 1;
    $b = 2;
    $c = 3;
    function demo(){
        echo '$a = '.$GLOBALS['a'];
        echo '<br>$b = '.$GLOBALS['b'];
        echo '<br>$c = '.$GLOBALS['c'];
    }
    demo();
    ?>

    输出结果为:

    2.png

    分析:

    $GLOBALS是一种预定义变量(又叫超全局变量),是包含所有变量的全局组合数组,变量的名称就是数组的键,可以使用$GLOBALS['变量名']的形式来访问指定全局变量。只要是出现过的全局变量,就可以通过$GLOBALS这个数组取得。

    global和$GLOBALS的区别

    第三种解决方法:将函数外部变量用参数传递进去

    <?php  
    header('content-type:text/html;charset=utf-8');   
    $mytext="PHP中文网";
    
    function chao_echo($mytext){
        echo $mytext;
    }
    
    chao_echo($mytext);
    ?>

    3.png

    推荐学习:《PHP视频教程

    以上就是php怎么在方法里用外部变量的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php怎么替换nbsp空格符 下一篇:php算不算脚本语言
    千万级数据并发解决方案

    相关文章推荐

    • php怎么判断有没有小数点• php怎么去掉右边几个字符• php怎么将英文句号替换成其他字符• php怎么将字符串转double类型并保留两位小数• php怎么去掉某个字符后面的内容• php怎么读取字符串后几个字符
    1/1

    PHP中文网