La syntaxe ressemble globalement au JAVA. Un objet est une référence vers une construction qui se rapproche d'un tableau associatif.
Voici un exemple de manipulation
<?php
abstract class Mamifere {
// nom
var $nom;
function __construct($nickname) {
$this->nom= $nickname ;
}
function parle () { }
}
class Chien extends Mamifere {
function parle () {
echo "ouaf ouaf\n";
}
}
$a= new Chien ("fido");
print_r( $a);
var_dump($a);
echo get_class($a)."\n";
echo get_parent_class($a)."\n";
$method= "parle";
call_user_func(array ($a,$method));
$b= get_class_methods($a);
var_dump($b);
?>
La manipulation d'un attribut d'instance à l'intérieur d'une classe est un peu lourde ($this->attribut) .
Des fonctions comme :
get_class , get_parent_class, get_class_methods permettent d'obtenir des informations sur les objets.
La fonction call_user_func peut etre utilisée pour envoyer un message à un objet afin qu'il exécute une méthode. C'est une des façons de réaliser de la métaprogrammation en PHP.
La sortie du programme donne :
php ./essaiclasse.php
Chien Object
(
[nom] => fido
)
object(Chien)#1 (1) {
["nom"]=>
string(4) "fido"
}
Chien
Mamifere
ouaf ouaf
array(2) {
[0]=>
string(5) "parle"
[1]=>
string(11) "__construct"
}
J'ai installé PHP 'client' pour faire tourner mon programme sous forme de script et non pas de CGI afin de m'affranchir de la couche du serveur Apache.
Aucun commentaire:
Enregistrer un commentaire