Php 我有严格的标准:只有变量应该通过引用传递
严格标准:第54行的C:\xampp\htdocs\engine\server\u modules\trinity\character.php中只能通过引用传递变量Php 我有严格的标准:只有变量应该通过引用传递,php,Php,严格标准:第54行的C:\xampp\htdocs\engine\server\u modules\trinity\character.php中只能通过引用传递变量 $res = $this->DB->prepare("SELECT guid, name, level, race, class, gender FROM `characters` WHERE `account` = :account ORDER BY level;"); $res->bindPar
$res = $this->DB->prepare("SELECT guid, name, level, race, class, gender FROM `characters` WHERE `account` = :account ORDER BY level;");
$res->bindParam(':account', $CURUSER->get('id'), PDO::PARAM_INT);
$res->execute();
if ($res->rowCount() > 0)
{
return $res;
}
else
{
return false;
}
}
$res->bindParam(':account',$CURUSER->get('id'),PDO::PARAM_INT) 在执行
$res=$this->DB
之前,尝试将$CURUSER->get('id')
保存到变量中
示例:首先调用$test=$CURUSER->get('id')
,然后绑定$test
变量:
$res->bindParam(':account', $test, PDO::PARAM_INT);
在这些行中缺少
代码>
这是正确的:
$test = $CURUSER->get('id');
$CURUSER->get('id')是一个方法调用(这里有点像函数调用)。函数返回值,但不是变量。严格的标准要求变量作为参数。因此,Adrian P的解决方案是先将函数结果赋给一个变量,然后使用该变量调用bindParam方法,这样效果会很好。当然,u_mulder的提示也可以,因为这个方法不要求变量代码>在原始问题中,所以这不是答案。如果你对另一个答案有意见,你应该把它们作为意见放进去。