35 541
modifications
Aucun résumé des modifications |
|||
<source lang="php">
class parent1
{
var $varParent;
function méthodeParente()
{
print 'Je connais méthodeParente' . PHP_EOL;
}
}
class enfant extends parent1
{
var $varEnfant;
function méthodeEnfant()
{
print 'Je connais méthodeEnfant' . PHP_EOL;
}
}
On peut aussi invoquer les méthodes parentes depuis la classe enfant :
<source lang="php">
class enfant2 extends parent1
{
var $varEnfant;
function méthodeEnfant()
{
parent::méthodeParente();
print 'Je connais méthodeEnfant2' . PHP_EOL;
}
}
trait MonTrait1
{
}
}
trait MonTrait2
{
}
}
class MaClasse1
{
}
}
Voici un exemple de {{w|classe abstraite}} :
<source lang=php>
class abstract MaClasseAbstraite
{
abstract public function MaMethode($var1, $var2);
}
</source>
interface MonInterface
{
public function setName($name);
public function getName();
}
</source>
class MaClasse implements MonInterface
{
private $myName;
public function setName($name)
{
$myName = $name;
}
public function getName(){
print 'Récupération de '.$myName;
}
}
</source>
class CompteEnBanque
{
private $argent = 0;
private function ajouterArgent($valeur)
{
$this->argent += $valeur;
}
{
$this->
}
}
class Humain
{
public $homme = false;
public $femme = false;
function __construct($type)
{
if ($type=="homme")
$this->homme=true;
if ($type=="femme")
$this->femme=true;
}
function extremeOnction()
{
echo 'Amen';
}
function __destruct()
{
$this->extremeOnction();
}
}
$homme = new Humain("homme");
if ($homme->homme) {
echo "C'est un homme";
} elseif ($homme->femme) {
echo "C'est une femme";
}
La méthode <code>__call()</code> s'exécute quand une méthode appelée est inaccessible ou inexistante. Exemple :
<source lang="php">
{
echo "On a appelé $method sans succès avec les paramètres :<br/>";
var_dump($arguments);
}
</source>
<source lang="php">
class test
{
private $b;
{
$this->b=$b;
}
{
echo "On a appelé __get(\$$nom)";
}
}
Exemple de réécriture de la méthode <code>__get</code> ci-dessus pour accéder à la variable privée :
<source lang="php">
function __get($nom)
{
if ($nom == 'b') {
echo $this->b;
}
}
</source>
<source lang="php">
class test2
{
private $b;
function __construct($a,$b)
$this->a=$a;
$this->b=$b;
}
function __get($nom)
echo 'get '.$nom;echo '<br/>';
}
function __set($nom,$value)
{
echo 'set '.$nom.' '.$value;echo '<br/>';
}
}
<source lang=php>
<?php
function __autoload($ClasseDistante)
{
throw new Exception($ClasseDistante . ' est introuvable !');
}
try {
$ClasseDistante1 = new ClasseDistante();
} catch (Exception $ex) {
echo $ex->getMessage(), "<br/>";
}
try {
$ClasseDistante2 = ClasseDistante::MethodeStatique();
} catch (Exception $ex) {
echo $ex->getMessage(), "<br/>";
}
?>
<source lang="php">
if
$var = new maClasse();
</source>
Assurent la transformation du flux de données, en précisant les types des variables et index des tableaux. Exemple :
<source lang=php>
</source>
|
modifications