我正在做一個需要一些SQL東西的函數,並且我不想爲每個函數定義一個新的PDO對象,但有一個可以工作的函數在所有功能上。PHP在類中定義一個新的PDO對象(外部函數)
這是我走到這一步:
<?php
class UserSystem
{
public $mysqlDetails =
[
"host" => "127.0.0.1",
"user" => "",
"pass" => "",
"database" => "",
"table" => ""
];
public $con = new PDO
(
"mysql:host=" . $this->mysqlDetails['host'] .
";dbname=" . $this->mysqlDetails['database'] . ";",
$this->mysqlDetails['user'],
$this->mysqlDetails['pass']
);
我怎麼能得到這個工作?目前,我得到這個錯誤: Parse error: syntax error, unexpected 'new' (T_NEW)
。有沒有更好的方式來做到這一點,所以我可以使用的功能$con
變量,而無需創建一個新的。 我不想像我見過的那樣將它注入到函數中。 IE這樣的:
<?php
function someFunc ($pdo)
{
$pdo->query("SELECT * FROM `someTable`");
}
而不是在類內初始化PDO,你應該將它注入爲依賴項。您可以使用[this](http://stackoverflow.com/a/11369679/727208)方法作爲基礎並加以改進。您當前的實施違反了[SOLID](http://en.wikipedia.org/wiki/SOLID_(面向對象設計))原則中的幾個。 –