PHP OOP - 访问修饰符
PHP 访问修饰符
属性和方法可以具有访问修饰符,以控制在何处可以访问它们。
有三种访问修饰符:
-
public
- 可以从任何地方访问该属性或方法。这是默认设置 -
protected
- 该属性或方法可以在类中以及从该类派生的类中访问 -
private
- 属性或方法只能在类内访问
在以下示例中,我们为三个属性(name、color 和 weight)添加了三个不同的访问修饰符。在这里,如果您尝试设置 name 属性,它将正常工作(因为 name 属性是公共的,并且可以从任何地方访问)。但是,如果您尝试设置 color 或 weight 属性,则会导致致命错误(因为 color 和 weight 属性是受保护的且是私有的):
例子
<?php
水果类 {
公共$名称;
受保护的$颜色;
私人$重量;
}
$mango = 新水果();
$mango->name = 'Mango'; // 确定
$mango->color = '黄色'; // 错误
$mango->weight = '300'; // 错误
?>
在下一个示例中,我们为两个函数添加了访问修饰符。在这里,如果您尝试调用 set_color() 或 set_weight() 函数,则会导致致命错误(因为这两个函数被视为受保护且私有的),即使所有属性都是公共的:
例子
<?php
水果类 {
公共$名称;
公共$颜色;
公共$重量;
function set_name($n) { // 公共函数(默认)
$this->名称 = $n;
}
protected function set_color($n) { // 受保护的函数
$this->颜色 = $n;
}
private function set_weight($n) {// 私有函数
$this->重量 = $n;
}
}
$mango = 新水果();
$mango->set_name('Mango'); // 确定
$mango->set_color('黄色'); // 错误
$mango->set_weight('300'); // 错误
?>