0

次の内容の functions.php ファイルがあります。

function maxSavePerHour($ip, $maxSave = 15){
//DB connection and query. Working fine.
$totalRows = mysql_num_rows($res);
    if($totalRows <=$maxSave){
        $safe=true;
    }else{
        $safe=false;
    }

if($safe){
    echo "OK";
}else{
    echo "Not OK";
}
}

その関数を別のページから呼び出します。そして、私は次のように関数を使用します。

maxSavePerHour($ip, 5);

値を変更すると、関数は必要に応じてテキストをエコーし​​ます。問題は $safe 変数です。$safe をエコーし​​ても何も得られません。

手がかりはありますか?$safe を true または false にする必要があるのは、後で if ステートメントで使用するためです。

私はグローバル $safe;` を入れて、今は動いています。ありがとうナイル。

4

4 に答える 4

1

$ safeを返すだけで、他のファイルから処理できるはずです。または、さらに良いことに、以下を実装します。

function maxSavePerHour($ip, $maxSave = 15){
//DB connection and query. Working fine.
$totalRows = mysql_num_rows($res);
    if($totalRows <=$maxSave){
        return true;
    }else{
        return false;
    }
}

実際には$safe変数は必要ありません。$ safe変数をグローバルとしてマークすることは非常に悪い考えであり、ほとんど行われるべきではありません。

于 2012-08-07T06:03:02.450 に答える
1
function maxSavePerHour($ip, $maxSave = 15){
//DB connection and query. Working fine.
$totalRows = mysql_num_rows($res);
    if($totalRows <=$maxSave){
        $safe=true;
    }else{
        $safe=false;
    }

    if($safe){
        echo "OK";
    }else{
        echo "Not OK";
    }
    return $safe;
}
$safe = maxSavePerHour($ip, 5);
echo $safe;
于 2012-08-07T06:23:21.910 に答える
1

$safe をエコーする場合、$safe はブール値であるため、何もエコーしません (false は値をエコーし​​ませんが、true は 1 をエコーし​​ます)。$safe の値を返し、呼び出しコードを変更してこれを処理します。例えば:

function maxSavesPerHour($ip, $maxSave) {
  $totalRows = mysql_num_rows($res);
  return ( $totalRows <= $maxSave ? TRUE : FALSE );
}

次に、次のようにコードから呼び出します。

if ( maxSavesPerHour($ip, 5) ) {
  //do something when true
} else {
 //do something when false
}
于 2012-08-07T06:06:35.060 に答える
0
function maxSavePerHour($ip, $maxSave = 15){ 
    //DB connection and query. Working fine. 
    $totalRows = mysql_num_rows($res); 
    $safe = false;
    if($totalRows <=$maxSave){ 
         $safe=true; 
    }else{ 
         $safe=false; 
    } 

    if($safe){ 
        echo "OK"; 
    }else{ 
        echo "Not OK"; 
    } 
} 

安全はその外にない場合にのみ存在します

于 2012-08-07T06:06:02.433 に答える