【威尼斯正规官网】实例调用等,这几个性情恐怕是办法只可以被类自己依旧子类的里边访谈
分类:热门资源

一,public,private,protected的区别 public:权限是最大的,能够内部调用,实例调用等。
protected: 受爱慕项目,用于本类和世襲类调用。
private: 私有档案的次序,独有在本类中使用。

在PHP5中增长了面向对象的建制,参与了面向对象数以万计的public、private、protected这样的访问调节机制。从字面意思来领会:

二,实例 复制代码 代码如下:

Public 无疑是共用的情致,意思是说类自个儿和其外界的子类都可以访谈这些性格大概措施;

error_reporting(E_ALL);
class test{
 public $public;
 private $private;
 protected $protected;
 static $instance;
 public  function __construct(){
 $this->public    = 'public    
';
 $this->private   = 'private   
';
 $this->protected = 'protected 
';
 }
 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
";
 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
";
 }
 private function pri_function(){
 echo "you request private function
";
 }
}
$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
?>

Private Hungary语翻译过来便是个人的意趣,只可以是类本身在类的当中本领访谈——实例化的靶子句柄无法访谈该属性和情势,子类也无法访谈;

从上边的例证中,大家能够看看,
public:    能够class内部调用,能够实例化调用。
private:   可以class内部调用,实例化调用报错。
protected:  能够class内部调用,实例化调用报错。
复制代码 代码如下:

Protected 受珍爱的质量大概措施,那特性子只怕是办法只好被类本人依然子类的中间访谈,实例化的靶子句柄无法访问。

class test{
 public $public;
 private $private;
 protected $protected;
 static $instance;
 public  function __construct(){
 $this->public    = 'public    
';
 $this->private   = 'private   
';
 $this->protected = 'protected 
';
 }
 protected function tank(State of Qatar{                          //私有法子不能够持续,换到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
";
 echo $this->public;
 }
 protected  function pro_function(){
 echo "you request protected function
";
 echo $this->protected;
 }
 private function pri_function(){
 echo "you request private function
";
 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
";
 }
 public function pri_extends_function(){
 echo "you request extends_private function
";
 }
}
error_reporting(E_ALL);
$test = new test1();
$test -> tank(State of Qatar;       //子类和父类有雷同名字的习性和艺术,实例化子类时,子类的中的属性和方法会盖掉父类的。
?>

前几天大家譬释尊讲那几个难点。

从上边包车型大巴事例中,我们能够见见,
public:    test中的public可以被三回九转。
private:   test中的private不得以被持续。
protected:test中的protected能够被一而再三番五次。
static:   test中的static能够被接续。
嗳,对于那些事物,老是不希罕记着,用的时候,总认为窘迫,又要去查,所以写个例子,方便本人查看。

倘诺有多少个宝石博物馆的协会者 小李,把库房中的宝石分为多个等级次序,红宝石,蓝宝石,绿宝石。况且划分了质量,红宝石是国家的任什么人都足以浏览标签为(public),蓝宝石管理员小李亲族传下来的(protected),绿宝石是小李本身在山头看到的(private)。

那正是说大家能够这么感到:

public标签的红宝石,是国家的——全体公民律师事务全部,只要是合法的国家的赤子都能够参谋和拍片。

Protected 这一个是受保证的,唯有小李宗族的人(小李的男女依旧外孙子)在一定的房屋内部能力浏览和油画,不许获得屋企外边看——太吝啬了!

Private 这些是私房的,小李不想让别的人知道,更不想让摄像了,所以必须要供小李在小李的室内看看而已,别的的人尽管小李的男女们都未曾办法来看

实例

 代码如下

<?php 

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 

 

?> 

 

 

<?php 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(State of Qatar {  echo "you request public function<br>";  echo $this->public;  echo $this->private;        //private,内部能够调用  echo $this->protected;      //protected,内部能够调用  $this->pri_function(State of Qatar;      //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  ?>

从上边的例子中,大家得以看来,
public: 能够class内部调用,可以实例化调用。
private: 能够class内部调用,实例化调用报错。
protected: 能够class内部调用,实例化调用报错。

<?php 

 

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(State of Qatar{ //私有办法不可能一而再,换来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(卡塔尔国; //子类和父类有相像名字的性质和艺术,实例化子类时,子类的中的属性和格局会盖掉父类的。 

 

?> 

本文由威尼斯在线注册平台发布于热门资源,转载请注明出处:【威尼斯正规官网】实例调用等,这几个性情恐怕是办法只可以被类自己依旧子类的里边访谈

上一篇:威尼斯正规官网在PHP中我们会动用date函数来收获当前的时光 下一篇:没有了
猜你喜欢
热门排行
精彩图文