我有以下的 「學生」 類:PHP OOP:訪問變量
class Student {
public $user_id;
public $name;
public function __construct($user_id) {
$info = $this->studentInfo($user_id);
$this->name = $info['name'];
$this->is_instructor = $info['is_instructor'];
$this->user_id = $info['id'];
}
public static function studentInfo($id) {
global $db;
$u = mysql_fetch_array(mysql_query("SELECT * FROM $db[students] WHERE id='$id'"));
if($u) {
return $u;
}
}
public static function getCoursesByInstructor() {
global $db;
return mysql_query("SELECT courses.*, course_types.name FROM $db[courses] as courses
JOIN $db[course_types] as course_types ON courses.course_type_id=course_types.id
WHERE instructor_id='$this->user_id'");
}
}
我試圖做的事:
$u = new Student(1);
$courses = $u->getCoursesByInstructor();
,但我得到以下錯誤:
致命錯誤:使用$ this,當不在對象上下文中的/Applications/MAMP/htdocs/flight1/phpincludes/classes/students.class.php上54行
54是哪裏? – deceze 2011-12-31 00:59:59
注 - 不要使用'global'來訪問'$ db'資源。將它作爲參數傳遞給方法,或者(*可能你的靜態方法將成爲實例,根據這裏的答案*)將它傳遞給對象的構造函數。 – Dan 2011-12-31 01:02:48