PHP函数无法正常工作(回显字符串,简单)

Ben*_*Ben 1 php debugging function

我创建了一个允许我调试PHP脚本的函数,只要将variable($debug)设置为1:

function debug($msg) {
    if ($debug == 1) {
        echo $msg;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,在我的脚本顶部(在functions.php调用文件之前),我写道:

$debug = 1;
Run Code Online (Sandbox Code Playgroud)

启用调试,然后:

debug("Function executed: " . $data);
Run Code Online (Sandbox Code Playgroud)

在某些点上,以便我知道字符串值/在该点的任何内容,所需的响应是屏幕上显示的消息.

但是,无论$debug字符串的值是什么,我都看不到任何echo'd语句.

怎么能实现这一目标?

Joh*_*nde 5

调试不适用于您的函数,因为它超出了范围.你要么:

  1. 需要将其作为参数传递
  2. 使用global关键字将其包含在您的函数中(不鼓励)

.

function debug($msg, $debug){
    if($debug==1){
    echo $msg;
} else {
    return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

function debug($msg){
    global debug;
    if($debug==1){
    echo $msg;
} else {
    return false;
    }
Run Code Online (Sandbox Code Playgroud)

}

  • 使用全局变量是"全局"这个词本身并不气馁.问题可能是如果在许多项目共享的函数中使用此全局变量,或者在某些情况下可能未设置全局变量.您的函数应该仅在逻辑上依赖于您传递的参数,仅此而已.今后可能会使用它的人必须知道它的args是他必须提供的唯一东西,没有更多的事可做. (2认同)