应该在范围内的变量不是

时间:2014-07-22 18:09:27

标签: php scope

我使用$debug变量来控制我测试的函数中的print语句。即使$debug在与函数相同的范围级别声明并初始化为true,但它在函数内被视为false(或undefined,我猜) 。我对PHP中变量范围的理解是错误的吗?我该如何解决这个问题?

我的实际代码要复杂得多,但以下是展示相同问题的最小示例。对于它的价值,我在Mac OS X 10.9.4上使用PHP 5.4.24在命令行上运行它。

<?php

$debug = true;

function myFunction()
{

    if($debug) {
        echo "I'm debugging";
    } else {
        echo "I'm not debugging";
    }
}

myFunction();

?>

对我来说,这个功能显示&#34;我没有调试&#34;。

2 个答案:

答案 0 :(得分:1)

请使用以下代码:

    <?php

    $debug = true;

    function myFunction($debug)
    {

        if($debug) {
            echo "I'm debugging";
        } else {
            echo "I'm not debugging";
        }
    }

    myFunction($debug);

    ?>

该函数需要参数&#34; $ debug&#34;使用它。欢迎来到php! :)

答案 1 :(得分:0)

$ debug = true;超出范围,请尝试这样做:

<?php



function myFunction()
{

   $debug = true;

    if($debug) {
        echo "I'm debugging";
    } else {
        echo "I'm not debugging";
    }
}

myFunction();

?>

您也可以使用global