0
看到這個,我有一個類使用另一個類的對象數組。如果我創建類的函數內部它的工作原理,如果我之外創建它,使用它像全球它不工作的數組...爲什麼全局數組無法識別,本地是? php
這一個工程:
//$titles = Title::all_by_id(1);
class Book {
public function represent() {
$titles = Title::all_by_id(1);
//global $titles;
$title = $titles[$this->title_id];
return $title->represent().'_'.$this->id;
}
}
這一個不:
$titles = Title::all_by_id(1);
class Book {
public function represent(){
//$titles = Title::all_by_id(1);
global $titles;
$title = $titles[$this->title_id];
return $title->represent().'_'.$this->id;
}
}
它發出了一個錯誤:
PHP Fatal error: Call to a member function represent() on a non-object in
你爲什麼要使用靜態函數? – goupil
當你在類的外面說'$ titles'時,它是一個'Variable'。當你在類裏面說'$ titles'時,它的'Property'。類有一個範圍,範圍內的任何東西都可以被類使用。 –
@Christian靜態函數有什麼問題?它從數據庫加載所有標題並將它們放入關聯數組id =>對象中,我更願意使用第二種方式,使用全局方式來避免多個數據庫查詢 –