004-对象——public protected private PHP封装的实例
<?php /** *public protected private PHP封装的实例 */ /*class tv { private $shengyin; function __construct() { $this->shengyin = 20; } public function yaokongqi($anniu, $liang = '') { switch ($anniu) { case "shengyin": $this->shengyin($liang); break; case "guandiansi": $this->guandiansi(); break; case 'huantai': $this->huantai($liang); break; case 'jingyin': $this->jinyin($liang); break; } } public function shengyin($daxiao) { $this->shengyin = $daxiao>0?$this->shengyin + $daxiao:$this->shengyin - $daxiao; echo "现在的声音是:{$this->shengyin}<br/>"; } private function guandiansi() { echo "关电视"; } private function huantai($pindao) { echo "现在是第{$pindao}频道"; } private function jinyin($zhuangtai) { $zhuangtai == 1 ? "电视静音了" : "打开声音"; } public function huodeshengyin() { return $this->shengyin; } } $tv1 = new tv(); $tv1->yaokongqi('shengyin', 6); echo "现在的电视声音是:".$tv1->huodeshengyin(); */ //最大化的封装,最小化的释放 /*class db { private $mysqli;//数据库链接 private $options;//SQL选项 private $tableName;//表名 function __construct($tabName) { $this->tableName = $tabName; $this->db(); } private function db() { $this->mysqli = new mysqli('localhost', 'root', '', 'blog'); $this->mysqli->query('SET NAMES utf8'); } function fields($fildsArr) { if (empty($fildsArr)) { $this->options['fields'] = ''; } if (is_array($fildsArr)) { $this->options['fields'] = implode(',', $fildsArr); } else { $this->options['fields'] = $fildsArr; } return $this; } function order($str) { $this->options['order'] = "ORDER BY".$str; return $this; } function select() { $sql = "SELECT {$this->options['fields']} FROM {$this->tableName} {$this->options['order']}"; return $this->query($sql); } private function query($sql) { $result = $this->mysqli->query($sql); $rows = array(); while ($row = $result->fetch_assoc()) { $rows[]= $row; } return $rows; } private function close() { $this->mysqli->close(); } function __destruct() { $this->close(); } } $chanel = new db('blog_article'); $changelInfo=$chanel->fields('art_id,art_title,art_tag')->select(); echo '<pre>'; print_r($changelInfo);*/ //public () 本类,子类 ,外部对象都可以执行 //protected (受保护的) 本类,子类,可以执行,外部对象不可以执行 //private (私有的) 只能在奔雷执行,子类与外部对象都不可以调用 /*class a{ protected function aa(){ echo 222; } } class b extends a{ function bb(){ $this->aa(); } } $c=new b(); $c->bb(); //输出:222;*/ /*class a{ private function aa(){ echo 222; } } class b extends a{ function bb(){ $this->aa(); } } $c=new b(); $c->bb(); //报错:*/