• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php: 关于访问控制(可见性)的示例代码分享

php 搞代码 4年前 (2022-01-22) 27次浏览 已收录 0个评论

Php代码

<?php  /**  * Define MyClass  */  class MyClass  {      public $public = 'Public';      protected $protected = 'Protected';      private $private = 'Private';        function printHello()      {          echo $this->public;          echo $this->protected;          echo $this->private;      }  }    $obj = new MyClass();  echo $obj->public; // 这行能被正常执行  echo $obj->protected; // 这行会产生一个致命错误  echo $obj->private; // 这行也会产生一个致命错误  $obj->printHello(); // 输出 Public、Protected 和 Private      /**  * Define MyClass2  */  class MyClass2 extends MyClass  {      // 可以对 public 和 protected 进行重定义,但 private 而不能      protected $protected = 'Protected2';        function printHello()      {          echo $this->public;          ech<strong>+本文来源gao@daima#com搞(%代@#码网</strong><pre>搞代gaodaima码

o $this->protected; echo $this->private; } } $obj2 = new MyClass2(); echo $obj2->public; // 这行能被正常执行 echo $obj2->private; // 未定义 private echo $obj2->protected; // 这行会产生一个致命错误 $obj2->printHello(); // 输出 Public、Protected2 和 Undefined ?>

Php代码

<?php  /**  * Define MyClass  */  class MyClass  {      // 声明一个公有的构造函数      public function construct() { }        // 声明一个公有的方法      public function MyPublic() { }        // 声明一个受保护的方法      protected function MyProtected() { }        // 声明一个私有的方法      private function MyPrivate() { }        // 此方法为公有      function Foo()      {          $this->MyPublic();          $this->MyProtected();          $this->MyPrivate();      }  }    $myclass = new MyClass;  $myclass->MyPublic(); // 这行能被正常执行  $myclass->MyProtected(); // 这行会产生一个致命错误  $myclass->MyPrivate(); // 这行会产生一个致命错误  $myclass->Foo(); // 公有,受保护,私有都可以执行      /**  * Define MyClass2  */  class MyClass2 extends MyClass  {      // 此方法为公有      function Foo2()      {          $this->MyPublic();          $this->MyProtected();          $this->MyPrivate(); // 这行会产生一个致命错误      }  }    $myclass2 = new MyClass2;  $myclass2->MyPublic(); // 这行能被正常执行  $myclass2->Foo2(); // 公有的和受保护的都可执行,但私有的不行    class Bar   {      public function test() {          $this->testPrivate();          $this->testPublic();      }        public function testPublic() {          echo "Bar::testPublic\n";      }            private function testPrivate() {          echo "Bar::testPrivate\n";      }  }    class Foo extends Bar   {      public function testPublic() {          echo "Foo::testPublic\n";      }            private function testPrivate() {          echo "Foo::testPrivate\n";      }  }    $myFoo = new foo();  $myFoo->test(); // Bar::testPrivate                   // Foo::testPublic  ?>
<?phpclass Test{    private $foo;    public function construct($foo)    {        $this->foo = $foo;    }    private function bar()    {        echo 'Accessed the private method.';    }    public function baz(Test $other)    {        // We can change the private property:        $other->foo = 'hello';        var_dump($other->foo);        // We can also call the private method:        $other->bar();    }}$test = new Test('test');$test->baz(new Test('other'));?>

以上例程会输出:

string(5) "hello"
Accessed the private method.

以上就是php: 关于访问控制(可见性)的示例代码分享的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php: 关于访问控制(可见性)的示例代码分享
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址