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 为真或假的原因是因为我稍后在 if 语句中使用它。

我把 global $safe;` 现在它的工作。谢谢尼罗河。

4

4 回答 4

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 并从另一个文件中处理它。或者更好的是,实现以下内容:

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

如果你回显 $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 回答