When running ADOdb, at least two files are loaded. First is adodb/adodb.inc.php, which contains all functions used by all database classes.
include('/path/to/set/here/adodb.inc.php');
$adodb_path = "/web/lib/php/adodb";
include("$adodb_path/adodb.inc.php");
class Student {
var $name;
var $scores;
// fonction "constructeur" pour créer l'objet (voir explication plus loin)
function Student ($nom) { $this->name = $nom; }
// Fonction accesseur pour le nom de l'étudiant
function getName () { return $this->name; }
// fonction accesseur pour les notes (sans tester s'il en a !)
function getGrade () {
$sum = 0;
$n_scores = sizeof($this->scores);
foreach ($this->scores as $score) {
$sum += $score;
}
$grade = $sum / $n_scores;
return $grade;
}
// accessor function pour insérer une note
function addScore ($score) { $this->scores[] = $score; }
// end of Student class definition
}
$nath = new Student("Nathalie Dupont");
$jule = new Student ("Gilles Jules");
// Ajouter quelques notes à Nathalie:
$nath->addScore(4); $nath->addScore(5); $nath->addScore(3); $nath->addScore(6);
echo "Grade obtained by ".$nath->getName() . ": " .$nath->getGrade() ;
class Student{
....
}
new Student();
$etudiant = new Student ();
function getName () {
return $this->name ;
}
$etudiant->getName();
Note: Il serait aussi possible d'accéder directement au nom avec $etudiant->name , mais ce type d'usage est fortement déconseillé, car il vaut mieux laisser une classe gérer sa méthode de stockage ! C'est le principe d'encapsulation, c.a.d le programmeur- utilisateur d'une classe devrait utiliser strictement les fonctions décrites dans l'API.
function changeXXX ($valeur ) {
$this->propriete_XXX = $valeur
}
function Student ($nom) {
$this->name = $nom;
}
$etudiant = new Student ("David Taylor");
Le constructeur suivant crée un objet "student" avec une valeur par défault
function Student ($nom="Anonymous") {
$this->name = $nom;
}
$etudiant = new Student ; // un constructeur sans parenthèses utilise
// les valeurs par défaut !
function getGrade () {
$sum = 0;
$n_scores = sizeof($this->scores);
foreach ($this->scores as $score) {
$sum += $score;
}
$grade = $sum / $n_scores;
return $grade;
}
include ("student-class.php");
// On définit un array pour stocker les étudiants
$students=array();
// une fonction pour entrer des notes
function addScore ($id, $grade) {
global $students;
$students[$id]->addScore($grade);
}
// une fonction pour afficher tous les résultats
function displayScores () {
global $students;
echo "<ol>";
foreach ($students as $student) {
echo "<li>Grade obtained by " . $student->getName() . ": " . $student->getGrade() . "</li>"; }
echo "</ol>";
}
// Un constructeur pour créer des étudiants
function makeStudent ($id, $name) {
global $students;
$students[$id] = new Student($id, $name);
}
// On crée des étudiants, ils sont mis dans le array indexé $students
makeStudent("nath", "Nathalie Dupont");
makeStudent("jules, "Gilles Jules");
makeStudent("steph", "Stephane Durand");
addScore("nath",4); addScore("nath",5); addScore("nath",3);
addScore("jules",2); addScore("jules",1); addScore("jules",3);
....
displayScores ();
$staf14 = new Course("Staf14 ..... ");
$staf14->makeStudent("nath", "Nathalie Morand");
$staf14->addScore("nath",4); $staf14->addScore("nath",5);
$staf14->addScores("jules",array(2,1,3,5));
$staf14->displayScores (); // Print the results