久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP面向?qū)ο笾?種數(shù)據(jù)訪問(wèn)方式詳解(代碼實(shí)例)

      本文目標(biāo)

      掌握PHP中數(shù)據(jù)訪問(wèn)的3種方式的定義和作用

      1、public

      2、protected

      3、private

      (一)、數(shù)據(jù)訪問(wèn)的3種方式

      1、Public:公有的類成員

      可以在任何地方訪問(wèn),具體可以被哪些訪問(wèn)了:

      ● 定義該類的類(自身)

      ● 該類的子類

      ● 其他類

      2、Protected:受保護(hù)的類成員

      ● 定義該類的類(自身)

      ● 該類的子類

      3、Private:私有的類成員

      ● 只有自身才可以訪問(wèn)

      總結(jié):從上到下約束能力是越來(lái)越強(qiáng)的

      單純從以上的文字描述,我們理解起來(lái)還是有點(diǎn)費(fèi)力的,那么還是按照理論+實(shí)踐的方式來(lái)進(jìn)行理解,那么接下來(lái)我們就通過(guò)具體的代碼來(lái)理解這3種數(shù)據(jù)訪問(wèn)的方式在PHP中到底是如何實(shí)現(xiàn)的,到底它們各自的特點(diǎn)是什么,最后來(lái)體會(huì)一下它們的約束能力到底又是怎樣。

      (二)具體代碼

      說(shuō)明:為了讓大家能更好的理解面向?qū)ο?,所以寫文章的時(shí)候,我也是盡量遵循一定的規(guī)則,由淺到深,由易到難,所以我寫的每篇文章都是和上篇文章有一定的關(guān)聯(lián),比如以下的代碼案例,我又是在上篇文章的代碼上進(jìn)行的拓展和延伸。

      案例一:知道public的定義,然后證明它可以在3個(gè)地方都可以訪問(wèn)(1.在自己定義的類中,2.在子類中 3.在外部)

      <?php  //定義 “人” 類 class Human{     public $name = "";//姓名      public $height = "";//身高     public $weight = "";//體重      public function eat($food){         echo $this->name."在吃".$food."<br/>";     } } //女主播 class Anchors extends Human{     public $name = "";     public $stageName = "";     public function __construct( $name,$stageName ){         $this->name = $name;         $this->stageName = $stageName;     }     public function singing(){         echo "我是女主播,我會(huì)唱歌<br/>";     }    } // Nba球員類  class NbaPlayer extends Human{    //因?yàn)楦割愐呀?jīng)有了,所以就不需要再寫了,通過(guò)extends來(lái)實(shí)現(xiàn)     // public $name  = "";//姓名     // public $height = "";//身高     // public $weight = "";//體重      public $team = "";//團(tuán)隊(duì)     public $playerName = "";//球員號(hào)碼      public function __construct( $name,$height,$weight,$team,$playerName ){         $this->name = $name;         $this->height=$height;         $this->weight = $weight;         $this->team = $team;         $this->playName = $playerName;         echo "構(gòu)造函數(shù)執(zhí)行了,當(dāng)前對(duì)象是{$this->name}<br/>";     }             //跑步     public function run(){         echo "跑步中<br/>";     }     //跳躍     public function jump(){         echo "跳躍<br/>";     }     //運(yùn)球     public function dribble(){         echo "運(yùn)球<br/>";     }      //傳球     public function pass(){         echo "傳球<br/>";     }     //投籃     public function shoot(){         echo "投籃<br/>";     }     //扣籃     public function dunk(){         echo "扣籃<br/>";     }  }   //數(shù)據(jù)訪問(wèn)測(cè)試 //public 測(cè)試 //1、測(cè)試在類的外部可以訪問(wèn)  //創(chuàng)建喬丹對(duì)象  $jordon = new NbaPlayer("喬丹","1.98米","98公斤","公牛","23");  //輸出喬丹對(duì)象  echo "名稱= ".$jordon->name."<br/>";//結(jié)果能夠輸出來(lái),說(shuō)明在外部是可以訪問(wèn)Public類成員的  //2、測(cè)試在類的自身里面可以訪問(wèn) //例子:比如構(gòu)造函數(shù)里,我們可以直接通過(guò)$this->team  //3、測(cè)試是否可以子類中可以訪問(wèn) //例子:比如父類中定義的name 一樣可以在子類(NbaPlayer)的構(gòu)造函數(shù)中直接訪問(wèn)  ?>

      運(yùn)行效果如下:

      PHP面向?qū)ο笾?種數(shù)據(jù)訪問(wèn)方式詳解(代碼實(shí)例)

      案例二:知道protected的定義,然后證明它可以在2個(gè)地方都可以訪問(wèn)(1.在自己定義的類中,2.在子類中 )

      <?php //定義“人”類 class Human{     public $name = "";//姓名     public $height = "";//身高     public $weight = "";//體重      protected $addr = "長(zhǎng)沙";//受保護(hù)的類         public function eat($food){         echo $this->name."在吃".$food."<br/>";     }     //測(cè)試protected類成員是否可以在自身類中可以訪問(wèn)     public function getAddrInHuman(){         echo "Human 自身類中的add=".$this->addr."<br/>";     } } //女主播 class Anchors extends Human{     public $name = "";     public $stageName = "";     public function __construct( $name,$stageName ){         $this->name = $name;         $this->stageName = $stageName;     }     public function singing(){         echo "我是女主播,我會(huì)唱歌<br/>";     }     //重寫方法eat     public function  eat($food){         echo "我是女主播,我是邊唱歌邊吃{$food}<br/>";     } }  class NbaPlayer extends Human{    //因?yàn)楦割愐呀?jīng)有了,所以就不需要再寫了,通過(guò)extends來(lái)實(shí)現(xiàn)     // public $name  = "";//姓名     // public $height = "";//身高     // public $weight = "";//體重      public $team = "";//團(tuán)隊(duì)     public $playerName = "";//球員號(hào)碼      public function __construct( $name,$height,$weight,$team,$playerName ){         $this->name = $name;         $this->height=$height;         $this->weight = $weight;         $this->team = $team;         $this->playName = $playerName;         echo "構(gòu)造函數(shù)執(zhí)行了,當(dāng)前對(duì)象是{$this->name}<br/>";     }          //測(cè)試protected類成員是否可以在子類中可以訪問(wèn)     public function getAddrInNbaPlayer(){         echo "在NbaPlayer子類中addr=".$this->addr."<br/>";     }  }   //創(chuàng)建喬丹對(duì)象  $jordon = new NbaPlayer("喬丹","1.98米","98公斤","公牛","23");   //數(shù)據(jù)訪問(wèn)測(cè)試  //protected測(cè)試  //1、測(cè)試是否可以在自身類中可以訪問(wèn)  $jordon->getAddrInHuman();//結(jié)果OK,確實(shí)是可以訪問(wèn)  //2.測(cè)試是否可以在子類中訪問(wèn)  $jordon->getAddrInNbaPlayer();//結(jié)果OK,確實(shí)也是可以訪問(wèn)  //3.測(cè)試是否可以被外部訪問(wèn)  echo "在類外部訪問(wèn)addr=".$jordon->addr."<br/>";//結(jié)果報(bào)錯(cuò),說(shuō)明不行  ?>

      運(yùn)行效果如下:

      PHP面向?qū)ο笾?種數(shù)據(jù)訪問(wèn)方式詳解(代碼實(shí)例)


      案例三:知道private的定義,然后證明它只能在1個(gè)地方可以訪問(wèn)(1.在自己定義的類中)

      <?php //定義“人”類 class Human{     public $name = "";//姓名     public $height = "";//身高     public $weight = "";//體重      private $isHungry = true;//測(cè)試私有變量是否可以在子類中訪問(wèn)        //為了讓外部可以訪問(wèn)private類成員     public function getPrivateInfo(){         return "private 變量 isHungry=".$this->isHungry."<br/>";     } } //女主播 class Anchors extends Human{     public $name = "";     public $stageName = "";     public function __construct( $name,$stageName ){         $this->name = $name;         $this->stageName = $stageName;     }     public function singing(){         echo "我是女主播,我會(huì)唱歌<br/>";     }     //重寫方法eat     public function  eat($food){         echo "我是女主播,我是邊唱歌邊吃{$food}<br/>";     } }  class NbaPlayer extends Human{    //因?yàn)楦割愐呀?jīng)有了,所以就不需要再寫了,通過(guò)extends來(lái)實(shí)現(xiàn)     // public $name  = "";//姓名     // public $height = "";//身高     // public $weight = "";//體重      public $team = "";//團(tuán)隊(duì)     public $playerName = "";//球員號(hào)碼      public function __construct( $name,$height,$weight,$team,$playerName ){         $this->name = $name;         $this->height=$height;         $this->weight = $weight;         $this->team = $team;         $this->playName = $playerName;         // echo "構(gòu)造函數(shù)執(zhí)行了,當(dāng)前對(duì)象是{$this->name}<br/>";     }     //測(cè)試private類成員是否可以在子類中訪問(wèn)     public function getIsHungryInNbaPlayer(){         echo "在NbaPlayer子類中isHungry=".$this->isHungry."<br/>";     }  }    //創(chuàng)建喬丹對(duì)象  $jordon = new NbaPlayer("喬丹","1.98米","98公斤","公牛","23");   //數(shù)據(jù)訪問(wèn)測(cè)試  //private測(cè)試  //1.測(cè)試私有變量能否被外部訪問(wèn)  echo "私有變量isHungry =".$jordon->isHungry ."<br/>";//結(jié)果不能訪問(wèn),說(shuō)明private變量不能被子類訪問(wèn)  //測(cè)試私有變量能否在定義的類的內(nèi)部訪問(wèn)  echo $jordon->getPrivateInfo();//結(jié)果Ok,說(shuō)明可以  //測(cè)試私有變量是否可以在子類中訪問(wèn) $jordon->getIsHungryInNbaPlayer();//結(jié)果報(bào)錯(cuò),說(shuō)明也不能在子類中訪問(wèn)  ?>

      運(yùn)行效果如下:

      PHP面向?qū)ο笾?種數(shù)據(jù)訪問(wèn)方式詳解(代碼實(shí)例)

      總結(jié):

      1、Public:公有的類成員

      可以在任何地方訪問(wèn),具體可以被哪些訪問(wèn)了:

      ● 定義該類的類(自身)

      ● 該類的子類

      ● 其他類

      2、Protected:受保護(hù)的類成員

      ● 可以被其自身及其子類訪問(wèn)

      3、Private:私有的類成員

      ● 只有自身才可以訪問(wèn)

      4.為了讓外部可以訪問(wèn)private類成員,我們可以通過(guò)在類中定義一個(gè)public方法,然后在public方法中返回private類成員

      好,到了這里,想必大家對(duì)數(shù)據(jù)訪問(wèn)應(yīng)該有了一個(gè)比較清晰的認(rèn)識(shí),那我們現(xiàn)在來(lái)學(xué)以致用,用我們學(xué)到的這個(gè)知識(shí)來(lái)解決以下的問(wèn)題,先自己思考一下怎么做,然后再看答案

      問(wèn)題:NBA球員一般都不想讓其他人知道自己的真實(shí)姓名,比如說(shuō)我明明是40歲,但是我就想讓別人以為是38歲

      思考中…………………..

      答案揭曉:

      代碼如下:

      <?php  class Human{     public $name = "";//姓名     public $height = "";//身高     public $weight = "";//體重  } //女主播 class Anchors extends Human{     public $name = "";     public $stageName = "";     public function __construct( $name,$stageName ){         $this->name = $name;         $this->stageName = $stageName;     }     public function singing(){         echo "我是女主播,我會(huì)唱歌<br/>";     }     //重寫方法eat     public function  eat($food){         echo "我是女主播,我是邊唱歌邊吃{$food}<br/>";     } }  class NbaPlayer extends Human{    //因?yàn)楦割愐呀?jīng)有了,所以就不需要再寫了,通過(guò)extends來(lái)實(shí)現(xiàn)     // public $name  = "";//姓名     // public $height = "";//身高     // public $weight = "";//體重      public $team = "";//團(tuán)隊(duì)     public $playerName = "";//球員號(hào)碼       //數(shù)據(jù)訪問(wèn)      private $age = "40";      //end      public function __construct( $name,$height,$weight,$team,$playerName ){         $this->name = $name;         $this->height=$height;         $this->weight = $weight;         $this->team = $team;         $this->playName = $playerName;         echo "構(gòu)造函數(shù)執(zhí)行了,當(dāng)前對(duì)象是{$this->name}<br/>";     }             //跑步     public function run(){         echo "跑步中<br/>";     }     //跳躍     public function jump(){         echo "跳躍<br/>";     }     //運(yùn)球     public function dribble(){         echo "運(yùn)球<br/>";     }      //傳球     public function pass(){         echo "傳球<br/>";     }     //投籃     public function shoot(){         echo "投籃<br/>";     }     //扣籃     public function dunk(){         echo "扣籃<br/>";     }        //數(shù)據(jù)訪問(wèn)      public function getAge(){         // echo $this->name."的age=".$this->age."<br/>";         //既然能夠在自身類中獲取到年齡,那么為了解決NBA球員不想讓別人知道自己真實(shí)年齡的問(wèn)題             //我們就可以對(duì)年齡進(jìn)行操作-造假 讓年齡更小         $age = $this->age-2;         echo $this->name."的age=".$age."<br/>";     }  }    //創(chuàng)建喬丹對(duì)象  $jordon = new NbaPlayer("喬丹","1.98米","98公斤","公牛","23");  $jordon->getAge();//結(jié)果Ok 說(shuō)明年齡是可以獲取到的,既然可以獲取到age我們?cè)诤瘮?shù)內(nèi)部作假,來(lái)達(dá)到一個(gè)謊報(bào)年齡的目的 ?>

      運(yùn)行效果如下:

      PHP面向?qū)ο笾?種數(shù)據(jù)訪問(wèn)方式詳解(代碼實(shí)例)

      總結(jié):

      1.知道了在PHP中數(shù)據(jù)訪問(wèn)有三種形式,public,protected,private

      2.知道了3種數(shù)據(jù)訪問(wèn)方式各自的特點(diǎn)

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)