1.5. PHP 类里面属性和方法的可见性(访问控制)

可见性:

PHP类里面属性或方法的可见性,控制着对应的属性或方法在哪些地方可以访问、哪些地方不能访问

我们在定义类属性的时候必须在前面加上 public, private, protected 三选一

在定义方法的时候可以省略可见性(默认是 public)

<?php
header('Content-Type:text/html;charset=utf8');
class ClassA{
	public $public='我是公共的';
	protected $protected="我是受保护的";
	private $private="我是私有的";
/* 本类里面可以访问public,protected,private三者可见性的属性 */	
	public function printVar(){
		echo "<p>{$this->public}</p>";
		echo "<p>{$this->protected}</p>";
		echo "<p>{$this->private}</p>";
	}
}

$classA=new ClassA();
$classA->printVar();

/* 本类外面可以访问可见性为public的属性,但不能访问可见性为protected,private的属性 */
echo "<p>{$classA->public}</p>";
//echo "<p>{$classA->protected}</p>";//error
//echo "<p>{$classA->private}</p>" //error
<?php
header('Content-Type:text/html;charset=utf8');
class ClassA{
	public $public='我是公共的';
	protected $protected="我是受保护的";
	private $private="我是私有的";
	
	public function printVar(){
		echo "<p>本类:{$this->public}</p>";
		echo "<p>本类:{$this->protected}</p>";
		echo "<p>本类:{$this->private}</p>";
	}
}

/* 子类里面可以访问public,protected的属性,但不能访问private属性 */
class ClassB extends ClassA{
	public function printVar(){
		echo "<p>子类:{$this->public}</p>";
		echo "<p>子类:{$this->protected}</p>";
		echo "<p>子类:{$this->private}</p>";
	}
}

$classB=new ClassB();
$classB->printVar(); //Execute the function
		

访问控制是在属性或方法前面添加关键字public, protected, private来实现的

作用:保护数据安全、封装好数据

发布了198 篇原创文章 · 获赞 82 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/103327834