我想知道为什么在下面的PHP代码中,PDO对象$ db被传递为NULL。即构造函数参数中的$db=NULL
。
class ColoredListsUsers
{
/**
* The database object
* @var object
*/
private $_db;
/**
* Checks for a database object and creates one if none is found
* @param object $db
* @return void
*/
public function __construct($db=NULL) /* why is #db passed as null here ? */
{
if(is_object($db))
{
$this->_db = $db;
}
else
{
$dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME;
$this->_db = new PDO($dsn, DB_USER, DB_PASS);
}
}
}
早期$ db被声明为PDO对象:
// Create a database object
try {
$dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME;
$db = new PDO($dsn, DB_USER, DB_PASS);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit;
}
将$ db作为PDO对象然后将其作为null传递似乎没有意义.... 代码来自http://www.copterlabs.com/blog/creating-an-app-from-scratch-part-5/
答案 0 :(得分:3)
public function __construct($db=NULL)
表示$db
is an optional parameter。如果未指定,则将使用默认的NULL
值。
在这种情况下 - 查看下面的几行,else
正文 - 创建默认连接。