我使用$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;。
答案 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