PHP - Objektorientierung
Version vom 19. November 2018, 09:58 Uhr von Flinh1 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „ <div align="right">'''Zur Seite "PHP"'''</div> <div align="right">'''Programmiersprachen im Internet und in Netzwerken|Zur Seite "Programmiersprach…“)
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
| | |