recherches récentes:
incluez les fonctions ,
fonctions variables ,
fonctions de poteau...
Si vous êtes nouveau au PHP ou devez juste régénérer vos qualifications, c'est l'endroit à commencer. Cette série de cours d'instruction te donnera la connaissance de base que vous devrez créer un simple Site Web de PHP.
Le PHP est un langage de programmation r3fléchissant à l'origine conçu pour produire les pages Web dynamiques. [1] Le PHP est employé principalement dans le serveur-côté scripting, mais peut être employé d'une ligne de commande interface ou dans des applications graphiques autonomes. Des interfaces utilisateurs textuelles peuvent également être créées utilisant des ncurses.
Les appels de méthodes et l'accès aux membres peuvent être surchargés via les méthodes __call(), __get() et __set(). Ces méthodes ne seront déclenchées que si votre objet, hérité ou non, ne contient pas le membre public ou la méthode auquel vous tentez d'accéder. Toutes les méthodes surchargées doivent être définies en tant que public.
Depuis PHP 5.1.0, il est également possible de surcharger les fonctions isset() et unset() via, respectivement, les méthodes __isset et __unset. La méthode __isset est également appelée avec la fonction empty().
PHP 5.3.0 ajoute la possibilité de surcharger les méthodes statiques via __callStatic.
Les membres d'une classe peuvent être surchargés afin d'exécuter un code spécial contenu dans vos méthodes __set() et __get(). Le paramètre $name est le nom de la variable qui doit être définie ou recherchée. Le paramètre $valeur de la méthode __set() spécifie la nouvelle valeur à donner à la variable $name.
Note: La méthode __set() ne peut pas prendre d'arguments par référence.
Exemple #1 Exemple de surcharge avec __get, __set, __isset et __unset
<?php
class Setter
{
public $n;
private $x = array("a" => 1, "b" => 2, "c" => 3);
public function __get($nm)
{
echo "Récupération de [$nm]\n";
if (isset($this->x[$nm])) {
$r = $this->x[$nm];
echo "Retour : $r\n";
return $r;
} else {
echo "Rien!\n";
}
}
public function __set($nm, $val)
{
echo "Définition de [$nm] à $val\n";
if (isset($this->x[$nm])) {
$this->x[$nm] = $val;
echo "OK!\n";
} else {
echo "Pas OK!\n";
}
}
public function __isset($nm)
{
echo "Vérifie si $nm est défini\n";
return isset($this->x[$nm]);
}
public function __unset($nm)
{
echo "Libération de $nm\n";
unset($this->x[$nm]);
}
}
$foo = new Setter();
$foo->n = 1;
$foo->a = 100;
$foo->a++;
$foo->z++;
var_dump($foo);
var_dump(isset($foo->a)); //true
unset($foo->a);
var_dump(isset($foo->a)); //false
// ceci ne passera pas via la méthode __isset()
// parce que 'n' est une propriété publique
var_dump(isset($foo->n));
var_dump($foo);
?>
L'exemple ci-dessus va afficher :
Définition de [a] à 100 OK! Récupération de [a] Retour : 100 Définition de [a] à 101 OK! Récupération de [z] Rien! Définition de [z] à 1 Pas OK! Vérifie si a est défini bool(true) Libération de a Vérifie si a est défini bool(false) bool(true) object(Setter)#1 (2) { ["n"]=> int(1) ["x":"Setter":private]=> array(2) { ["b"]=> int(2) ["c"]=> int(3) } }
Les méthodes magiques __call() et __callStatic() permet la capture des appels à des méthodes inexistantes. De cette façon, ces méthodes peuvent être utilisées pour implémenter un gestionnaire de méthodes défini par l'utilisateur qui dépend du nom de la méthode réellement appelée. Ceci est particulièrement pratique pour implémenter une classe proxy, par exemple. Les arguments qui sont passés à la fonction devront être définis dans un tableau via le paramètre $arguments. La valeur retournée par ces méthodes sera retournée à la méthode appelante.
Exemple #2 Exemple de surcharge avec __call()
<?php
class Caller
{
private $x = array(10, 20);
public function __call($m, $a)
{
print "Méthode instanciée $m appelée :\n";
var_dump($a);
return $this->x;
}
}
$foo = new Caller();
$a = $foo->test('a','b');
var_dump($a);
?>
L'exemple ci-dessus va afficher :
Méthode instanciée test appelée : array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } array(2) { [0]=> int(10) [1]=> int(20) }
Exemple #3 Exemple de méthodes instanciées et surchargées avec __call
<?php
class Caller
{
private static $x = array(10, 20);
public static function __callStatic($m, $a)
{
print "Méthode statique '$m' appelée :\n";
var_dump($a);
return self::$x;
}
}
$a = Caller::test('a', 'b');
var_dump($a);
?>
L'exemple ci-dessus va afficher :
Méthode statique 'test' appelée : array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } array(2) { [0]=> int(10) [1]=> int(20) }
Des autres fonctions utiles :
language.oop5.visibility | language.oop5.typehinting | language.oop5.static | language.oop5.reflection | language.oop5.patterns | language.oop5.paamayim-nekudotayim | language.oop5.overloading | language.oop5.object-comparison | language.oop5.magic | language.oop5.late-static-bindings | language.oop5.iterations | language.oop5.interfaces | language.oop5 | language.oop5.final | language.oop5.decon | language.oop5.constants | language.oop5.cloning | language.oop5.basic | language.oop5.autoload | language.oop5.abstract |
Le PHP est une langue scripting d'usage universel employée couramment qui approprié particulièrement au développement de Web et peut être enfoncée dans le HTML. Si vous êtes nouveau au PHP et voulez avoir une certaine idée de la façon dont cela fonctionne, essayez le cours d'instruction d'introduction. Après ce, vérifiez le manuel en ligne, et l'exemple archivez les emplacements et certaines des autres ressources disponibles dans la section de liens.