我有一个带有以下内容的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语句中使用它。
我把全球$安全;`现在它的工作。谢谢尼罗河。
答案 0 :(得分: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变量标记为全局是一个非常糟糕的主意,几乎不可能完成。
答案 1 :(得分:1)
如果你回显$ safe,它就没有回应,因为$ safe是一个布尔值(false不会回显一个值,而true会回显1)。我将返回$ safe的值,然后更改调用代码来处理这个问题。 E.g:
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
}
答案 2 :(得分: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;
答案 3 :(得分: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";
}
}
安全只存在于if之外