区别一下public,protected和private
定义
public,protected和private称为“访问修饰符”,可以通过在声明前加上这些关键字来定义属性,方法或常量的可见性。
public:公有类型,可以在任何地方访问。
protected:受保护类型,只能在类本身内以及继承和父类中访问。
private:私有类型,只能由定义该成员的类访问。该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能 调用私有类型的属性和方法
举几个例子。
1.Public
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?php class pub{ public $message = "你看见了我"; function display(){ echo $this->message."<br/>"; } }
class child extends pub{ function show(){ echo $this->message; } }
$obj = new child; echo $obj->message."</br>"; $obj->display(); $obj->show();
|

2.protected
把public改成protected,编译器提示:

通过父类类型的变量,是不允许访问protected成员的。只调用其本身和子类则正常输出。

3.private
再改为private

只能由定义该成员的类访问,由于它只对类的内部成员可见,所以要利用它,一般都会是写一个public的方法,再返回这个属性。
1 2 3 4 5 6 7 8 9 10 11 12
| <?php class pri{ private $a = 'self'; public function test() { $other = new self(); $other->a = '这样你才能看见我'; var_dump($other->a); } }
$obj = new pri(); $obj->test();
|

Author:
banbird
Permalink:
http://www.blacknight.top/2020/05/26/note13/
License:
Copyright (c) 2022 CC-BY-NC-4.0 LICENSE