Maison > développement back-end > tutoriel php > Introduction au contrôle d'accès des attributs ou méthodes en PHP (exemple de code)

Introduction au contrôle d'accès des attributs ou méthodes en PHP (exemple de code)

不言
Libérer: 2023-04-04 10:54:01
avant
2042 Les gens l'ont consulté

Ce que cet article vous apporte est une introduction au contrôle d'accès aux attributs ou aux méthodes en PHP (exemples de code). Les amis dans le besoin peuvent s'y référer.

Le contrôle d'accès aux propriétés ou méthodes en PHP se fait en ajoutant les mots-clés public (public), protected (protected) ou Privé (privé) à réaliser. Les membres de classe définis comme publics sont accessibles de n'importe où, et les membres de classe définis comme protégés sont accessibles par eux-mêmes, ainsi que par leurs sous-classes et classes parentes. Les membres de classe définis comme privés ne sont accessibles que par la classe dans laquelle ils sont définis.

Les attributs de classe doivent être définis comme publics, protégés ou privés. S'il est défini avec var, il est considéré comme public. Les sous-classes peuvent modifier les valeurs des propriétés publiques et protégées de la classe de base.

<?php
class A{
    var $a="a";
    protected $b="b";
    private $c="c";
    
    function printVar(){
        echo $this->a.";".$this->b.";".$this->c.";"."\n";
    }
}
class B extends A{
    public $a="aa";
    protected $b="bb";
    private $c="cc";
}
$a=new A();
$a->printVar();
$b=new B();
$b->printVar();
?>
Copier après la connexion

Les cours doivent être définis comme publics, protégés ou privés. S’il n’est pas précisé, il est considéré comme public. Les sous-classes peuvent remplacer les fonctions publiques et protégées de la classe de base.

<?php
class A{
    public function fa(){
        echo "A->fa\n";
    }
    protected function fb(){
        echo "A->fb\n";
    }
    private function fc(){
        echo "A->fc\n";
    }
    function showFoo(){
        $this->fa();
        $this->fb();
        $this->fc();
    }
}
class B extends A{
    function fa(){
        echo "B->fa\n";
    }
    protected function fb(){
        echo "B->fb\n";
    }
    private function fc(){
        echo "B->fc\n";
    }
}
$a=new A();
$a->showFoo();
$b=new B();
$b->showFoo();
?>
Copier après la connexion

Les objets de la même classe, même s'il ne s'agit pas de la même instance, peuvent accéder aux membres privés et protégés les uns des autres, car les détails d'implémentation internes de ces objets sont connus.

<?php
class A
{
    private $a;

    public function __construct($a)
    {
        $this->a = $a;
    }

    private function fa()
    {
        echo &#39;private method fa.&#39;;
    }

    public function foo(A $other,$v)
    {
        $other->a = $v;
        var_dump($other->a);
        $other->fa();
    }
}

$a = new A(&#39;a&#39;);
$aa=new A(&#39;aa&#39;);
$a->foo($aa,&#39;newA&#39;);
?>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal