我正在使用该函数在 php 中建立数据库连接
$DBConn = mysql_connect ("localhost" , "testuser" , "test123")
在释放我正在使用的连接时
if( is_resource($DBConn) )
检查当前是否设置了连接。我想知道这样做是否有效,或者我应该像这样检查连接
if( $DBConn )
我想知道同时使用这两种说法的利弊。
首先,你不应该再使用mysql_xxx
函数;有很多文章讨论了使用 PDO / mysqli 准备好的语句等的好处。
通过查看手册,它声明它返回链接标识符或false
失败。你不应该假设这个标识符到底是什么,它通常是一个资源,但它也可能是一个对象或整数。我会简单地否定更简单的条件:
if (false !== $DBConn) {
// do something with the database
}
或者,或者:
if (false === $DBConn) {
throw new Exception("Could not connect to database");
}
// do something with the database
编辑
使用if ($DBConn) { ... }
也可以,因为它基本上与 0、false、null、"" 和空数组相反。
成功连接或查询后返回资源标识符。因此,该函数is_resource
会将变量标识为资源或错误。
如果If
表达式计算结果为TRUE
,PHP 将执行语句,如果计算结果为FALSE
,则不会。
它们本质上是相同的,尽管有人可能会争辩说,调用is_resource
方法具有调用函数的开销,但if
也必须确定这一点,并且它们之间几乎没有区别。我猜这都是关于你的编码风格和可读性