PHP!是资源($RS)vs($RS==false)vs$RS
在PHP中检查有效资源时,我想知道这些资源是否可以互换。前两种方法正在我工作的地方使用,据我所知,它们正在完成同样的事情 编辑:当我第一次问这个问题时,我使用了一些从PHP手册中复制的代码作为示例,其中包含mysql命令。因为我没有使用mysql,所以我决定重写这个问题 方法1-使用!是_资源,与方法2中的直接比较相比,它的开销稍大一些PHP!是资源($RS)vs($RS==false)vs$RS,php,Php,在PHP中检查有效资源时,我想知道这些资源是否可以互换。前两种方法正在我工作的地方使用,据我所知,它们正在完成同样的事情 编辑:当我第一次问这个问题时,我使用了一些从PHP手册中复制的代码作为示例,其中包含mysql命令。因为我没有使用mysql,所以我决定重写这个问题 方法1-使用!是_资源,与方法2中的直接比较相比,它的开销稍大一些 $RS = sqlsrv_query($con, $SQL); if (!is_resource($RS)) { die('not a resource
$RS = sqlsrv_query($con, $SQL);
if (!is_resource($RS)) {
die('not a resource');
}
方法2-直接比较法
$RS = sqlsrv_query($con, $SQL);
if ($RS === false) {
die('not a resource');
}
方法3-这与方法2相同,只是不太冗长?或者我遗漏了===的一些细微差别
$RS = sqlsrv_query($con, $SQL);
if (!$RS) {
die('not a resource');
}
谢谢mysql\u connect将只返回资源或false 有效地,
$db_link
和$db_link===false
是相同的。编辑:“在此实例中。”它们实际上并不相同,因为===执行严格的类型检查,但就本讨论而言,它们实际上是相同的
is\u resource
实际上也是一样的,只是稍微增加了一些开销,但不足以关注这样的微观优化
您不应该使用
mysql\uuz
函数编写新代码。它已经被弃用很长时间了。替换是mysqli_uu
如果您知道您正在处理的可能值,并且这些值可以通过简单的布尔测试清楚地区分出来,那么这就足够了mysql\u connect
返回资源或布尔值false
。布尔值false
将始终为false,资源将始终为truthy,因此if(!$db_link)
是一个非常充分和简洁的测试。考虑到$db\u link
可能存在的两个值,此操作不会失败
==false
对于布尔比较更为明确,但这是不必要的。除了冗长,它没有添加任何内容
is_resource
也适用于您的目的,在另一方面更为明确,但这也是不必要的。它与任何其他情况都不匹配,一个简单的布尔比较在这里是不匹配的。您应该停止使用mysql
扩展,它已经过时多年,并且已经从当前版本的PHP中删除。它们都是等价的mysql\u connect()
返回资源或false。资源总是真实的。选择使用哪一种只是个人风格。