php public private protected
时间: 2023-05-01 11:06:49 浏览: 109
这是PHP中的三个访问控制修饰符:public(公共)、private(私有)、protected(受保护)。它们用于控制类的属性和方法的可见性和可访问性。公共成员可以从任何地方访问,私有成员只能在类内部访问,受保护成员可以在子类中访问。
相关问题
写出 php 的 public、protected、private 三种访问控制模式的区别
在 PHP 中,有三种访问控制模式:public、protected 和 private。
1. public (公共访问控制符):可以在任何地方被访问,没有访问限制。
2. protected (受保护的访问控制符):只能在当前类或子类中访问,不能在类外部访问。
3. private (私有的访问控制符):只能在当前类中访问,不能在子类或类外部访问。
下面是一个例子,说明这三种访问控制模式的区别:
```php
class MyClass {
public $publicVar = 'public'; // 公共变量
protected $protectedVar = 'protected'; // 受保护变量
private $privateVar = 'private'; // 私有变量
function printVar() {
echo $this -> publicVar; // 可以在类内部和外部访问
echo $this -> protectedVar; // 可以在类内部和子类中访问
echo $this -> privateVar; // 只能在类内部访问
}
}
$obj = new MyClass();
echo $obj -> publicVar; // 可以访问
echo $obj -> protectedVar; // 不能访问
echo $obj -> privateVar; // 不能访问
$obj -> printVar(); // 可以访问类内部方法,输出 public protected private
```
从上面的例子可以看出,公共变量可以在类内部和外部访问,受保护变量只能在类内部和子类中访问,私有变量只能在类内部访问。
阐述默认访问属性、public访问属性、private访问属性和protected访问属性的应用场合。
在PHP中,属性的访问控制有四种:默认访问属性、public访问属性、private访问属性和protected访问属性。它们的应用场合如下:
1. 默认访问属性:如果没有指定任何访问修饰符,则属性默认为默认访问属性。默认访问属性可以被同一个包中的任何类访问。
2. public访问属性:public访问属性可以被任何类访问,无论是在同一个包中还是在不同的包中。
3. private访问属性:private访问属性只能被定义它们的类所访问。这意味着,如果一个类定义了一个私有属性,那么其他类不能直接访问该属性。但是,可以通过该类的公共方法来访问该属性。
4. protected访问属性:protected访问属性可以被定义它们的类及其子类访问。这意味着,如果一个类定义了一个受保护的属性,那么该类及其子类可以直接访问该属性,但其他类不能。
在实际应用中,我们可以根据需要选择适当的访问修饰符来保护属性的访问。例如,如果一个属性需要被多个类访问,我们可以将其设置为public访问属性;如果一个属性只需要在定义它的类中使用,我们可以将其设置为private访问属性;如果一个属性需要在定义它的类及其子类中使用,我们可以将其设置为protected访问属性。
阅读全文