Ответ 1
Ваше поле protected $conn
не является статическим полем, поэтому оно не доступно из статического метода (см. http://php.net/manual/en/language.oop5.static.php).
Вы также можете использовать self::$conn
для доступа к статическому полю или $this->conn
для доступа к полям объектов. Как вы это делаете, вы используете локальную переменную, которая делает ваш protected $conn
неиспользованным. Я полагаю, что ваш код должен выглядеть так:
<?php
class RECORDS {
protected static $conn = null;
public function __construct() {
//Connect to database
self::$conn = $this::connection();
}
public static function &connection(){
if(self::$conn==NULL){
self::$conn = new mysqli(_DB_HOST_, _DB_USER_, _DB_PASS_, _DB_HOST_);
if ($mysqli->connect_errno) {
die("Failed to connect to MySQL: (" .
$mysqli->connect_errno . ") " .
$mysqli->connect_error);
}
}
return self::$conn;
}
// ... methods that do stuff
}