PHP函数,从另一个文件调用带变量的错误

时间:2012-08-07 05:57:48

标签: php function

我有一个带有以下内容的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语句中使用它。

我把全球$安全;`现在它的工作。谢谢尼罗河。

4 个答案:

答案 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之外