je les suivantes classe "étudiant":PHP POO: Accès aux variables
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'");
}
}
Je suis en train de faire:
$u = new Student(1);
$courses = $u->getCoursesByInstructor();
Mais je obtiens l'erreur suivante:
Fatal erreur: Utilisation de $ this dans un contexte d'objet dans /Applications/MAMP/htdocs/flight1/phpincludes/classes/students.class.php à la ligne 54
Où est la ligne 54? – deceze
Remarque - n'utilisez pas 'global' pour accéder à la ressource' $ db'. Passez-le comme un argument à la méthode, ou (* aussi probable que vos méthodes statiques deviendront des instances, basées sur les réponses ici *) passez-le au constructeur de l'objet. – Dan