У меня есть имя класса DBConnection:статический метод внутри другого класса
class DBConnection {
public function __construct() {}
public static function getConnection() {
try{
$conn = new PDO('mysql:host='.HOST.'; dbname='.DATABASENAME.'; charset=utf8', USERNAME, PASSWORD);
return $conn;
}catch(PDOException $e){
echo("Connect to database failed");
}
}
}
и имя класса bookDA:
require_once("DBConnection.php");
require_once("../entity/book.php");
class bookDA {
private $conn = DBConnection::getConnection();//This line didn't work
public function getAll() {
$bookList = array();
$stmt = $this->conn->prepare("SELECT * FROM booklist");
$stmt->execute();
while($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
$bookList[] = new book($result["bookId"], $result["bookName"], $result["bookPrice"]);
}
return bookList;
}
public function getByName($name) {
$bookList = array();
$stmt = $this->conn->prepare("SELECT * FROM booklist WHERE LIKE :name");
$stmt->bindValue(":name", "%".$name."%", PDO::PARAM_STR);
$stmt->execute();
while($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
$bookList[] = new book($result["bookId"], $result["bookName"], $result["bookPrice"]);
}
return bookList;
}
}
создать статический метод: "GetConnection" внутри класса DBConnection, и в класс: «bookDA» я называю это, но это не сработало. Поэтому я пытаюсь поставить строку, которая не работает вне класса bookDA, и эта работа как чемпион. Может ли кто-нибудь сказать мне, почему?
Какое выражение вы указываете. Я пытаюсь установить значение по умолчанию для поля следующим образом: private $ testField = 1 + 1 и эта работа. – khoibn
Обновлен мой ответ, чтобы предоставить более подробную информацию. Только постоянные выражения действительны после того, как PHP 5.6 – Burak
благодарит вас. Теперь я понимаю. – khoibn