• 技术文章 >后端开发 >PHP问题

    php的访问控制符有哪些

    青灯夜游青灯夜游2021-07-15 16:11:10原创90

    php的访问控制符有:1、public,将属性或方法设置为可从任何地方访问;2、private,将属性或方法设置为只能由其自己的类或对象访问;3、protected,将属性或方法设置为可由其类或其后代访问。

    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

    访问控制修饰符列表

    访问修饰符含义
    Public将属性或方法设置为可从任何地方访问
    Private将属性或方法设置为只能由其自己的类或对象访问
    Protected将属性或方法设置为可由其类或其后代访问

    public

    公共属性和方法可以从任何地方访问。

    <?PHP
    class Book {
            public $Name;
            public function say() {
                    print "PHP!\n";
            }
    }
    class PythonBook extends Book {
            public function say() {
                    print "Python!\n";
            }
    }
    $aBook = new PythonBook;
    $aBook->Name = "Python";
    print $aBook->Name;
    ?>

    默认情况下,所有类方法都是public的。

    上面的代码生成以下结果。

    1.png

    private

    私有属性只能在自己的类中访问。

    <?PHP
    class Book {
            private $Name;
            private $NameTag;
            public function setName($NewName) {
                    // etc
            }
    }
    ?>

    子类无法访问私有父方法和属性。如果你想这样做,你需要protected关键字。

    Protected

    受保护的属性和方法可在其自己的类和子类中访问。考虑下面的代码:

    <?PHP
    class Book {
            public $Name;
            protected function getName() {
                    return $this->Name;
            }
    }
    class Poodle extends Book {
            public function say() {
                    print ""Book", says " . $this->getName();
            }
    }
    $aBook = new Poodle;
    $aBook->Name = "PHP";
    $aBook->say();
    ?>

    上面的代码生成以下结果。

    2.png

    例子

    下面的代码显示了如何使用Private成员隐藏信息。

    <?php
      class Widget
      {
        private $name;
        private $price;
        private $id;
        public function __construct($name, $price)
        {
          $this->name = $name;
          $this->price = floatval($price);
          $this->id = uniqid();
        }
        //checks if two widgets are the same
        public function equals($widget)
        {
          return(($this->name == $widget->name) AND
           ($this->price == $widget->price));
        }
      }
      $w1 = new Widget("Cog", 5.00);
      $w2 = new Widget("Cog", 5.00);
      $w3 = new Widget("Gear", 7.00);
      //TRUE
      if($w1->equals($w2))
      {
        print("w1 and w2 are the same<br>\n");
      }
      //FALSE
      if($w1->equals($w3))
      {
        print("w1 and w3 are the same<br>\n");
      }
      //FALSE, == includes id in comparison
      if($w1 == $w2)
      {
        print("w1 and w2 are the same<br>\n");
      }
    ?>

    上面的代码生成以下结果。

    3.png

    推荐学习:《PHP视频教程

    以上就是php的访问控制符有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 访问控制符
    上一篇:小程序如何获取到openid和session_key 下一篇:win7如何使用php连接远程oracle
    第16期线上培训班

    相关文章推荐

    • php foreach怎么删除数组• nginx 没有解析php怎么办• 如何解决php无法加载memcache问题• php 多维数组怎么转为字符串• php数组怎么替换value值• 分享微信支付v3版 php解密解密代码

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网