douzhajie7168 2015-11-10 11:30
浏览 5
已采纳

为什么这是无限递归?

Just ask the title asks, here's the code:

<?php

$foo = 0;

function letsLoop() {
    while ($foo != -1) {
        changeFoo();
        echo "Hello, world!
";
    }
}

function changeFoo() {
    extract($GLOBALS);

    $foo = -1;
}

letsLoop();
  • 写回答

1条回答 默认 最新

  • dounuo8797 2015-11-10 11:32
    关注

    Just because you extract the global into the local scope doesn't mean that you will be modifying the global variable $foo. To reference the global variable inside the function, you must use the global keyword:

    function changeFoo() {
        global $foo;
    
        $foo = -1;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部