PHP - Objektorientierung
Inhaltsverzeichnis
Grundmuster
<?php
class SimpleClass
{
// Deklaration einer Eigenschaft
public $var = 'ein Standardwert';
// Deklaration einer Methode
public function displayVar() {
echo $this->var;
}
}
?>
Getter und Setter
Getter:
// Ceci est la méthode force() : elle se charge de renvoyer le contenu de l'attribut $_force.
public function force()
{
return $this->_force;
}
Setter:
// Mutateur chargé de modifier l'attribut $_force.
public function setForce($force)
{
if (!is_int($force)) // S'il ne s'agit pas d'un nombre entier.
{
trigger_error('La force d\'un personnage doit être un nombre entier', E_USER_WARNING);
return;
}
if ($force > 100) // On vérifie bien qu'on ne souhaite pas assigner une valeur supérieure à 100.
{
trigger_error('La force d\'un personnage ne peut dépasser 100', E_USER_WARNING);
return;
}
$this->_force = $force;
}
Konstruktor
Beispiel:
<?php
class Personnage
{
private $_force;
private $_localisation;
private $_experience;
private $_degats;
public function __construct($force, $degats) // Constructeur demandant 2 paramètres
{
echo 'Voici le constructeur !'; // Message s'affichant une fois que tout objet est créé.
$this->setForce($force); // Initialisation de la force.
$this->setDegats($degats); // Initialisation des dégâts.
$this->_experience = 1; // Initialisation de l'expérience à 1.
}
// Mutateur chargé de modifier l'attribut $_force.
public function setForce($force)
{
if (!is_int($force)) // S'il ne s'agit pas d'un nombre entier.
{
trigger_error('La force d\'un personnage doit être un nombre entier', E_USER_WARNING);
return;
}
if ($force > 100) // On vérifie bien qu'on ne souhaite pas assigner une valeur supérieure à 100.
{
trigger_error('La force d\'un personnage ne peut dépasser 100', E_USER_WARNING);
return;
}
$this->_force = $force;
}
// Mutateur chargé de modifier l'attribut $_degats.
public function setDegats($degats)
{
if (!is_int($degats)) // S'il ne s'agit pas d'un nombre entier.
{
trigger_error('Le niveau de dégâts d\'un personnage doit être un nombre entier', E_USER_WARNING);
return;
}
$this->_degats = $degats;
}
}
$perso1 = new Personnage(60, 0); // 60 de force, 0 dégât
$perso2 = new Personnage(100, 10); // 100 de force, 10 dégâts
Ausgabe:
Voici le constructeur !Voici le constructeur !
Autoload
spl_autoload_register
Beispiel:
<?php
function chargerClasse($classe)
{
require $classe . '.php'; // On inclut la classe correspondante au paramètre passé.
}
spl_autoload_register('chargerClasse'); // On enregistre la fonction en autoload pour qu'elle soit appelée dès qu'on instanciera une classe non déclarée.
$perso = new Personnage;
Verweisoperator / Gültigkeitsbereichsoperator (::)
Weitere Bezeichnungen: Scope Resolution Operator, Paamayim Nekudotayim
Der Gültigkeitsbereichsoperator, auch Verweisoperator genannt, ist ein Kürzel, das Zugriff auf statische, konstante und überschriebene Mitglieder einer Klasse ermöglicht.[3]
Beispiel:
<?php
class Personnage
{
private $_force;
private $_localisation;
private $_experience;
private $_degats;
// Déclarations des constantes en rapport avec la force.
const FORCE_PETITE = 20;
const FORCE_MOYENNE = 50;
const FORCE_GRANDE = 80;
public function __construct($forceInitiale)
{
// N'oubliez pas qu'il faut assigner la valeur d'un attribut uniquement depuis son setter !
$this->setForce($forceInitiale);
}
public function deplacer()
{
}
public function frapper()
{
}
public function gagnerExperience()
{
}
public function setForce($force)
{
// On vérifie qu'on nous donne bien soit une « FORCE_PETITE », soit une « FORCE_MOYENNE », soit une « FORCE_GRANDE ».
if (in_array($force, [self::FORCE_PETITE, self::FORCE_MOYENNE, self::FORCE_GRANDE]))
{
$this->_force = $force;
}
}
}
Erstellung des Ojekts:
<?php // On envoie une « FORCE_MOYENNE » en guise de force initiale. $perso = new Personnage(Personnage::FORCE_MOYENNE);
- self – Kann in Klassen verwendet werden, um Bezug auf Methoden innerhalb derselben Klase zu nehmen.
- parent – Verweist auf die Klasse, von der mit extends geerbt wurde.
Links
- Zur Seite PHP
| | |