Php Null和False之间的区别
我正在观看关于使用php开发留言簿的教程 这是获取id为的消息的代码Php Null和False之间的区别,php,mysql,sql,Php,Mysql,Sql,我正在观看关于使用php开发留言簿的教程 这是获取id为的消息的代码 public function GetMessage($id) { //Database $id = (int)$id; $gb_host = 'localhost' ; $gb_dbname = 'guestbook' ; $gb_username = 'root'; $gb_password = '' ; $connection = mysqli_
public function GetMessage($id)
{
//Database
$id = (int)$id;
$gb_host = 'localhost' ;
$gb_dbname = 'guestbook' ;
$gb_username = 'root';
$gb_password = '' ;
$connection = mysqli_connect($gb_host , $gb_username , $gb_password,$gb_dbname);
$querycheck = mysqli_query($connection,"SELECT * FROM `messages` WHERE `id` = $id");
if($querycheck)
{
$message = mysqli_fetch_assoc($querycheck);
return $message;
}
else
{
mysqli_close($connection);
return NULL;
}
mysqli_close($connection);
}
为什么在else语句中我们返回NULL而不是False
Null和False之间有什么区别?类型
False是布尔值,null是值
因此:
在这种情况下,Imho中的更高精度和null和false是不正确的,因为方法应该返回一种类型的数据 在我们的方法中,它应该是数组,而不是特殊类型(null)或布尔值, 在其他地方使用这种方法会很容易,因为每次我们知道我们使用数组时,我们不必写这样的东西:
$messages = $dao->GetMessage(27);
if (is_array($messages)) {
// ...
}
if (is_null($messages)) {
$messages = []; // because wihout it foreach will down
}
foreach ($messages as $message) {
// ...
}
对我来说,这很简单:
如果数据库中有数据,我们将接收非空数组,
如果数据库中没有数据,我们将收到空数组。
很明显 在DB术语中,
null
未知/未定义false
是一个已知/定义的值。可能与@Marc B重复。我可以请您进一步澄清。。。False如果他没有在DB中找到行,我们可以使用它吗?$message
如果DB中没有匹配的行,那么它就已经是False了。无法从空结果集中获取任何内容。好的,如果为false,为什么在else语句中他关闭连接并返回NULL为什么他没有将其保留为false您能解释我的代码吗?为什么他键入NULL而不是false。。为什么在else语句中他关闭连接并返回NULL为什么他没有将其保留为FALSE,因为找不到值。未找到任何内容应为NULL。如果未找到,则返回false。这是正确的语法。您可以同时使用这两种语法。你确定:D昨天让我感到困惑吗:Dbro我需要理解教程的代码,知道为什么为NULL而不是false
$messages = $dao->GetMessage(27);
if (is_array($messages)) {
// ...
}
if (is_null($messages)) {
$messages = []; // because wihout it foreach will down
}
foreach ($messages as $message) {
// ...
}