Home
Accueil
Downloads
Téléchargements
Forums
Forums
Your Account
Votre compte
Menu
· Accueil ·

· Communication ·
  · Forums
  · Messages privés
  · Contactez nous
  · Recommendez nous
  · Sondages
  · Les projets

· Nouvelles ·Stats
  · Sujets
  · Ecrire un article
  · Articles archivés
  · Articles RSS
  · Lettre de sécurité
  · Archive de lettres

· Téléchargements ·
  · Accueil
  · Nouveautés
  · Mises à jour
  · Thêmes

· Outils ·
  · Outils divers
  · Convertisseur de temps
  · Table de caractères
  · Générateur de boutons
  · Compresseur Javascript

· Documentation ·
  · Wiki
  · Questions/Réponses
  · Documents
  · Manuel PHP-Nuke
  · Manuel PHP
  · Manuel PEAR
  · Encyclopédies

· Liens ·
  · Nos liens
  · Nos fluxs RSS
  · Partenaires
  · Votre publicité
  · Sitemap
  · Mes bannières

· Infos ·
  · Rechercher
  · Votre compte
  · Liste des membres
  · Carte des membres
  · Top

· Divers ·
  · Météo
  · Galeries
  · Statistiques Phpnuke
  · MS Analysis


L'opérateur de résolution de portée (::)

L'opérateur de résolution de portée (::)

L'opérateur de résolution de portée (aussi appelé Paamayim Nekudotayim) ou, en termes plus simples, le symbole "double deux points" (::), fournit un moyen d'accéder aux membres statiques ou constants ainsi qu'aux éléments redéfinis par la classe.

Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez le nom de la classe.

Paamayim Nekudotayim peut sembler un choix étrange pour un double deux points. Cependant, au moment de l'écriture du Zend Engine 0.5 (fournit avec PHP 3), c'est le nom choisi par le groupe Zend. En fait, cela signifie un double deux points... en Hébreu !

Exemple 19-12. :: en dehors de la définition de la classe

<?php
class MyClass {
    const
CONST_VALUE = 'Une valeur constante';
}

echo
MyClass::CONST_VALUE;
?>

Deux mots-clé spéciaux, self et parent, sont utilisés pour accéder aux membres ou aux méthodes depuis la définition de la classe.

Exemple 19-13. :: depuis la définition de la classe

<?php
class OtherClass extends MyClass
{
    
public static $my_static = 'variable statique';

    
public static function doubleColon() {
        echo
parent::CONST_VALUE . "\n";
        echo
self::$my_static . "\n";
    }
}

OtherClass::doubleColon();
?>

Lorsqu'une classe étendue redéfinit une méthode de la classe parente, PHP n'appelera pas la méthode d'origine. Il appartient à la méthode dérivée d'appeler la méthode d'origine en cas de besoin. Cela est également valable pour les définitions des constructeurs et destructeurs, les surcharges et les méthodes magiques.

Exemple 19-14. Appel d'une méthode parent

<?php
class MyClass
{
    
protected function myFunc() {
        echo
"MyClass::myFunc()\n";
  }
}

class
OtherClass extends MyClass
{
    
// Dépassement de la définition parent
    
public function myFunc() {

      
// Mais appel de la fonction parent
      
parent::myFunc();
      echo
"OtherClass::myFunc()\n";
  }
}

$class = new OtherClass();
$class->myFunc();
?>

Manuel PHP pour PHP-Nuke © www.stefvar.com
Syndiquez notre contenu RSS, Atom, etc..
PHP-Nuke © 2007Reproduction interdite sans autorisation de ma part www.stefvar.com Copyright © 2008Thème iCGstation
Site français de la communauté PragmaMx