21xrx.com
2024-12-27 16:11:28 Friday
登录
文章检索 我的文章 写文章
PHP OOP - 访问修饰符
2021-07-22 19:03:11 深夜i     --     --
P H P O P - A c c e s s o d i f i e r s


PHP - 访问修饰符

属性和方法可以有访问修饰符,可以控制它们可以在哪里 被访问。

有三个访问修饰符:

  • public - 属性或 方法可以从各处访问。 这是默认值
  • protocted - 属性或方法可以在类里面访问或子类可以访问
  • private-属性或方法只能在类内访问

在以下示例中,我们给三个属性添加三个不同的访问修饰符 。 在这里,如果您尝试设置name属性它将正常工作(因为name属性是公开的)。 但是,如果你试试设置color或weight属性,它将导致致命的 错误(因为color和weight属性受保护和私有):

<?php
class Fruit {
  public $name;
  protected $color;
  private $weight;
}

$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>

在下一个例子中,我们给两个方法添加访问修饰符 。 这里,如果您尝试调用set_color()或set_weight()函数,它将导致致命 错误(因为两个函数被视为受保护和私有),即使 所有属性都是公开的:
 

<?php
class Fruit {
  public $name;
  public $color;
  public $weight;

  function set_name($n) {  // a public function (default)
    $this->name = $n;
  }
  protected function set_color($n) { // a protected function
    $this->color = $n;
  }
  private function set_weight($n) { // a private function
    $this->weight = $n;
  }
}

$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>


 

  
  
下一篇: PHP OOP - 继承

评论区

{{item['qq_nickname']}}
()
回复
回复