Home  >  Article  >  Backend Development  >  Introduction to access control of attributes or methods in PHP (code example)

Introduction to access control of attributes or methods in PHP (code example)

不言
不言forward
2018-10-25 16:44:351973browse

This article brings you an introduction to access control of attributes or methods in PHP (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. .

Access control of properties or methods in PHP is by adding the keywords public (public), protected (protected) or Private (private) to achieve. Class members defined as public can be accessed from anywhere, and class members defined as protected can be accessed by itself and its subclasses and parent classes. Class members defined as private can only be accessed by the class in which they are defined.

Class attributes must be defined as public, protected or private. If defined with var, it is considered public. Subclasses can modify the values ​​of public and protected properties of the base class.

<?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();
?>

Classes must be defined as public, protected or private. If not specified, it is considered public. Subclasses can override public and protected functions of the base class.

<?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();
?>

Objects of the same class, even if they are not the same instance, can access each other's private and protected members, because the internal implementation details of these objects are known.

<?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;);
?>

The above is the detailed content of Introduction to access control of attributes or methods in PHP (code example). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete