1

$debug変数 ( ) が に設定されている限り、PHP スクリプトをデバッグできる関数を作成しました1

function debug($msg) {
    if ($debug == 1) {
        echo $msg;
    } else {
        return false;
    }
}

そうすれば、スクリプトの先頭 (functions.phpファイルが呼び出される前) に、次のように記述します。

$debug = 1;

デバッグを有効にするには、次のようにします。

debug("Function executed: " . $data);

特定の時点で、その時点で文字列の値などを知ることができ、望ましい応答は画面に表示されるメッセージです。

ただし、文字列の値に関係なく、'd ステートメント$debugは表示されません。echo

これはどのように達成できますか?

4

5 に答える 5

5

関数は範囲外であるため、デバッグは使用できません。次のいずれか:

  1. パラメータとして渡す必要があります
  2. globalキーワードを使用して関数に含めます (非推奨)

.

function debug($msg, $debug){
    if($debug==1){
    echo $msg;
} else {
    return false;
    }
}

また

function debug($msg){
    global debug;
    if($debug==1){
    echo $msg;
} else {
    return false;
    }

}

于 2013-05-29T12:19:12.787 に答える
2

提供したデータが少なすぎるため、何とも言えません。

その理由は、$debug変数が関数内で認識されていない可能性があります。s の使用globalは推奨されないため、定数の使用を検討してdefine("DEBUG",1);ください。

編集

クラス名もグローバルにアクセスされるため、クラスを使用して同じことを行う方法を別の質問で提示しました。

于 2013-05-29T12:20:09.947 に答える
0

グローバル変数は、そうするまで関数からアクセスできません。例えば:

function debug($msg( {
   global $debug;
   etc...

PS: どうか、これをしないでください。より良い方法を見つけてください。本当。

于 2013-05-29T12:20:29.510 に答える
0

$debug はグローバル変数であるため、関数ではアクセスできません

于 2013-05-29T12:22:36.400 に答える