之前,我問我的問題,我想確認一些事情是清楚的:PHP OOP代碼由於語法錯誤而失敗?
1)我讀了OOP(介紹,基礎知識,繼承性等官方PHP手冊)似乎IM誠實沒有得到什麼。進入它現在幾個小時,並修復了一些東西,然後出現新的錯誤。
2)我讀了錯誤信息Main :: __ construct()和Undefined variable:array缺少參數1。這意味着我的$ start變量是NULL。
3)我做的幾個搜索計算器要麼是對我明白什麼,因爲示例代碼事情是如此複雜(不爲首發的最好的事情)並不完全相關或很辛苦。
我的問題:爲什麼下面的代碼不工作?我真的很感激爲什麼它失敗了,我必須考慮。
class Main {
protected $config;
protected $start;
function __construct($arr) {
if(!isset($this -> start)) {
if ($arr['secure']){
$this -> config = parse_ini_file('C:\xampp\htdocs\project\config.ini');
$this -> start = mysqli_connect($this -> config['host'], $this -> config['username'],
$this -> config['password'], $this -> config['database']);
}
else {
$this -> start = mysqli_connect($arr['host'], $arr['username'], $arr['password'], $arr['database']);
}
}
if($this -> start == false) {
return mysqli_connect_error();
}
}
}
$Main = new Main($array = ["host" => '', "username" => '', "password" => '', "database" => '',
"errors" => false, "secure" => true]);
class Test extends Main {
public function sample() {
$query = "SELECT id, user,
FROM users";
$result = mysqli_query($Main -> start , $query);
$row = mysqli_fetch_array($result);
echo $row['user'];
}
}
$x = new Test();
$x -> sample();
這真的很詳細。我現在要讀這個。來自JS OOP有點困難,所以我非常感謝。 – Asperger
對象可以是NULL,所以我可以說== NULL? – Asperger
實際上,儘管文檔中說'mysqli_connect()'會返回一個對象,但實際上它可以拋出一個警告並返回false。試試這個:'var_dump(mysqli_connect('','','',''));' – Flosculus