我想知道爲什麼在下面的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對象,然後把它作爲空.... 代碼來自http://www.copterlabs.com/blog/creating-an-app-from-scratch-part-5/
您沒有在提供的代碼中創建任何'ColoredListsUsers'實例。 – zerkms
它不作爲NULL傳遞 - 這是構造函數的默認參數值。它允許一個_omit_ $ db參數,在這種情況下它將是默認的NULL。 –