我的班级名字
public function getGameName($gameID){
$gameIDValid = false;
try {
$db = database::databaseConnect();
$getGame_stmt = $db->prepare('SELECT gameID, shortTitle FROM games WHERE gameID =:gameID');
$getGame_stmt->bindParam(':gameID', $gameID, PDO::PARAM_INT);
$getGame_stmt->execute();
if($getGame_stmt->rowCount() == 1){
$gameIDValid = true;
}
$db = NULL;
} catch (PDOException $e) {
$gameIDValid = false;
}
return $gameIDValid;
}
从我的班级做错误检查
public function validategameID($gameID) {
$validGame = userValidation::getGameName($gameID);
if($validGame === false){
return 'Problem adding your game';
}
}
我的验证码:
$validatedGameID = $validateUserInput->validategameID($gameID);
die($validatedGameID);
如果我选择了错误的游戏ID,我会收到错误消息。但是,当我使用:
die(print_r($validatedGameID));
我得到以下输出:
Problem adding your game1
如果我使用正确的游戏ID,则无法执行以下任何其他代码:
die($validatedGameID);
有人可以帮忙吗?当我使用1
时,为什么函数在错误消息的末尾返回print_r
?为什么即使使用正确的游戏ID,我也无法在die
之后执行任何代码?< / p>
答案 0 :(得分:1)
该行:
die(print_r($validateGameID));
执行以下步骤:
print_r($validateGameID)
。这会打印$validateGameID
的值,因为这是print_r()
在使用1参数调用时所执行的操作。die()
的返回值调用print_r()
。使用1参数调用print_r()
时返回TRUE
。这将执行以下步骤:
1
,因为转换为字符串时TRUE
变为1
。die()
的作用(它只是exit()
的替代名称,但按照错误退出时使用的惯例)所以它一起打印$validateGameID
,然后打印1
,然后退出脚本。
因为它退出脚本,所以在执行后没有任何内容。
您可以给print_r()
第二个参数,使其返回其参数的格式化版本,而不是打印它:
die(print_r($validateGameID, true));
或者您可以单独拨打print_r()
和die()
:
print_r($validateGameID);
die();
答案 1 :(得分:0)
print_r函数将其所有输出打印到屏幕并返回true作为值。如果您希望它返回数据而不是打印到屏幕,则将true添加为第二个参数
$dump = print_r($var, true);