1-5(OOP)PHP类里面属性和方法的可见性(访问控制)

可见性(访问控制):

visibility [ˌvɪzəˈbɪləti] 

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来实现的

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

 

1)被定义为公有的类成员可以在任何地方被访问

2)被定义为受保护的类成员则可以被其自身以及子类和父类访问

3)被定为私有的类成员则只能被其定义所在的类访问

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值