douman6245 2013-03-13 08:18
浏览 11
已采纳

到函数内的全局变量

I have problem to Global Variables inside functions

<?php
    function main(){
        $var = "My Variable";
        function sub() {
            GLOBAL $var;
            echo $var; // Will show "My Variable"
        }
        sub();
        echo $var; // Will show "My Variable" 
    }
    main();
    sub(); // Will not show and I will sub() cant use outside main() function
?>
  1. I just want to global $var inside sub functions
  2. sub() will not work outside main() function

I tied to use GLOBAL but it show nothing ... Any ?

  • 写回答

2条回答 默认 最新

  • doujiongqin0687 2013-03-13 08:31
    关注

    Not sure if i understand what you want, but your $var is not global. its a local variable inside main()

    a variable is only global, if you declare it outside of a function or class.

    <?php
        $var = "My Variable"; // made $var global
        function main(){
            //removed $var here
            function sub() {
                global $var;
                echo $var; // Will show "My Variable"
            }
            sub();
            echo $var; // Will throw notice:  Undefined variable: var
        }
        main();
        sub(); // Will show "My Variable"
    ?>
    

    why would you declare a method inside a method to call it from there?

    maybe something like this is what you want...

    <?php
       //$var = "My Variable";
        function main(){
            $var = "My Variable";
            $sub = function($var) {
                echo "sub: ".$var; // Will show "sub: My Variable"
            };
            $sub($var);
            echo "main: ".$var; //  Will show "main: My Variable"
        }
        main();
        // sub(); // Will not work
        // $sub(); // Will not work
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!