Mammouth du PHP |
1885 Messages
04 oct. 2005, 22:46
Bonjour,
__get(), __set() et __call() permettent la surcharge.
__get() a un paramètre: le nom de la propriété à retourner.
__set() a deux paramètres: le nom de la propriété ainsi que la valeur à lui attribuer.
__call() possède deux paramètres: le nom de la méthode à appeller et un tableau des paramètres à passer à celle-ci.
Exemples
<?php
class arrayObject {
protected $tableau = array();
public function __construct() {}
public function __get($name) {
if (TRUE === isset($this->tableau[$name]) {
return $this->tableau[$name];
} else {
return NULL;
}
}
public function __set($name, $value) {
$this->tableau[$name] = $value;
}
public function __call($name, $params) {
switch($name) {
case 'count':
return sizeOf($this->tableau);
break;
case 'in':
return in_array_keys($params[0], $this->tableau);
break;
default:
break;
}
}
}
?>
La programmation est l'expression de la poésie d'un programmeur
Génération PHP