php class中public,private,protected的区别用法示例
内容摘要
这篇文章主要为大家详细介绍了php class中public,private,protected的区别用法示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看
文章正文
这篇文章主要为大家详细介绍了php class中public,private,protected的区别用法示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等。protected: 受保护类型,用于本类和继承类调用。private: 私有类型,只有在本类中使用。二,实例代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <code><?php /* php教程 www.512Pic.com */ error_reporting (E_ALL); class test{ public $public ; private $private ; protected $protected ; static $instance ; public function __construct(){ $this -> public = 'public <br>' ; $this -> private = 'private <br>' ; $this -> protected = 'protected <br>' ; } static function tank(){ if (!isset(self:: $instance [get_class()])) { $c = get_class(); self:: $instance = new $c ; } return self:: $instance ; } public function pub_function() { echo "you request public function<br>" ; echo $this -> public ; echo $this -> private ; //private,内部可以调用 echo $this -> protected ; //protected,内部可以调用 $this ->pri_function(); //private方法,内部可以调用 $this ->pro_function(); //protected方法,内部可以调用 } protected function pro_function(){ echo "you request protected function<br>" ; } private function pri_function(){ echo "you request private function<br>" ; } } $test = test::tank(); echo $test -> public ; echo $test -> private ; //Fatal error: Cannot access private property test::$private echo $test -> protected ; //Fatal error: Cannot access protected property test::$protected $test ->pub_function(); $test ->pro_function(); //Fatal error: Call to protected method test::pro_function() from context $test ->pri_function(); //Fatal error: Call to private method test::pri_function() from context ?> </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <code><?php /* php教程 www.512Pic.com */ class test{ public $public ; private $private ; protected $protected ; static $instance ; public function __construct(){ $this -> public = 'public <br>' ; $this -> private = 'private <br>' ; $this -> protected = 'protected <br>' ; } protected function tank(){ //私有方法不能继承,换成public,protected if (!isset(self:: $instance [get_class()])) { $c = get_class(); self:: $instance = new $c ; } return self:: $instance ; } public function pub_function() { echo "you request public function<br>" ; echo $this -> public ; } protected function pro_function(){ echo "you request protected function<br>" ; echo $this -> protected ; } private function pri_function(){ echo "you request private function<br>" ; echo $this -> private ; } } class test1 extends test{ public function __construct(){ parent::tank(); parent::__construct(); } public function tank(){ echo $this -> public ; echo $this -> private ; //Notice: Undefined property: test1::$private echo $this -> protected ; $this ->pub_function(); $this ->pro_function(); $this ->pri_function(); //Fatal error: Call to private method test::pri_function() from context 'test1' } public function pro_extends_function(){ echo "you request extends_protected function<br>" ; } public function pri_extends_function(){ echo "you request extends_private function<br>" ; } } error_reporting (E_ALL); $test = new test1(); $test -> tank(); //子类和父类有相同名字的属性和方法,实例化子类时,子类的中的属性和方法会盖掉父类的。 ?> </code> |
注:关于php class中public,private,protected的区别用法示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释