|
访问控制
- <?php
- /*
- 继承
- 直观目标:
- 解决代码的重用
- 实现步骤:
- 1. 提取重复的代码
- 2. 建立联系, extends
- 结论:
- 使用了继承,父类拥有的所有属性和方法,子类都有。
- public 公有属性
- protected 受保护属性
- private 私有属性
- public protected private
- 外部 Y N N
- */
- class Animal
- {
- public $a = 100;
- private $b = 200;
- protected $c = 300;
- }
- $ani = new Animal();
- // 类外部访问公有属性
- var_dump($ani->a);
- // 类外部访问私有属性
- // var_dump($ani->b);
- // 类外部访问受保护属性
- var_dump($ani->c);
复制代码 mysqli
- <?php
- define('DB_HOST', 'localhost');
- define('DB_USER', 'root');
- define('DB_PASSWD', 'jiege');
- define('DB_NAME', 'test');
- define('DB_PORT', '3306');
- class Model
- {
- // mysqli 实例
- protected $mysql = null;
- // 结果集 实例
- protected $result = null;
- public function __construct()
- {
- // mysql 的连接
- $this->mysql = new MySQLi(DB_HOST, DB_USER, DB_PASSWD, DB_NAME, DB_PORT);
- }
- public function find(int $id)
- {
- // 组装SQL
- $sql = "select * from `{$this->table}` where `id` = {$id} limit 1";
- echo $sql . '<br>';
- $this->query($sql);
- return $this->fetch();
- }
- public function query($sql)
- {
- // 发送执行
- $this->result = $this->mysql->query($sql);
- }
- protected function fetch() : array
- {
- // 检索结果
- $rows = $this->result->fetch_all(MYSQLI_ASSOC);
- return $rows;
- }
- }
- class User extends Model
- {
- protected $table = 'user';
- public function getTable()
- {
- return $this->table;
- }
- }
- $user = new User();
- $list = $user->find(1);
- echo '<pre>';
- print_r($list);
- echo '</pre>';
- echo $user->getTable();
复制代码 demo
- <?php
- /*
- 继承
- 直观目标:
- 解决代码的重用
- 实现步骤:
- 1. 提取重复的代码
- 2. 建立联系, extends
- 结论:
- 使用了继承,父类拥有的所有属性和方法,子类都有。
- public 公有属性
- protected 受保护属性
- private 私有属性
- public protected private
- 自己 Y Y Y
- 家族 Y Y N
- 外部 Y N N
- */
- class Animal
- {
- public $a = 100;
- private $b = 200;
- protected $c = 300;
- }
- class Dog extends Animal
- {
- public function test()
- {
- var_dump($this->a);
- var_dump($this->b);
- var_dump($this->c);
- }
- }
- $dog = new Dog();
- $dog->test();
复制代码
|
|