Correction status:qualified
Teacher's comments:这些基础都理解了, 就差实战与应用了
对命名空间的理解:
声明命名空间为 namespace ;
::class //获取当前类的完整类名称(命名空间名称+类名称);
访问 new \命名空间名称\类名称 ;
在one空间执行two空间的test类里的方法: (new \two\test()) -> show ();
命名空间就像城市与街道划分,命名空间是城市,类是街道
类的定义:生成对象的模板;
类的实例化: $obj = new Demo1();
类的成员: 类属性(变量概念)和类方法(函数概念)
get_class_vars() 获取类中所有属性组成的数组;
类中的$this代表当前类的实例,是伪对象;
查看类中的方法 get_class_methods();
构造方法 __construct() 魔术方法 系统自动触发;
析构方法 __destruct() 也是魔术方法 对象被删除/清零时触发;
unset() 删除对象;
类的继承
用extends拓展 round(数据,保留小数点几位)四舍五入
实例<?php namespace one; class A{ public $who; public $name; //构造方法 public function __construct($who='我是',$name='洪吉潮') { $this->who = $who; $this->name = $name; } public function demo() { return '结果:' . $this->who . $this->name; } } $obj = new A(); echo $obj -> demo(); namespace two; class A { public $who; public $name; //构造方法 public function __construct($who='你是',$name='李文茜') { $this->who=$who; $this->name=$name; } public function demo(){ return '结果:'.$this->who . $this->name; } } echo '<hr>'; $obj = new A(); echo $obj->demo();
点击 "运行实例" 按钮查看在线实例
<?php namespace one; class Db { public $pdo = 'null'; //构造方法 创建pdo连接数据库 public function __construct($dsn,$username,$password) { $this->pdo = new \PDO($dsn,$username,$password); } //析构方法 public function __destruct() { echo '<br>'.'连接断开'; } } $db = new Db('mysql:host=127.0.0.1;dbname=php','root','root'); $stmt = $db->pdo->prepare('SELECT * FROM `movies`'); $stmt ->execute(); foreach ($stmt->fetchAll(\PDO::FETCH_ASSOC )as $data){ print_r($data); }
点击 "运行实例" 按钮查看在线实例
<?php //命名空间 namespace one; //demo类 class demo { public $name; public $age; //构造函数 实例化时会被自动调用执行 public function __construct($name= '洪吉潮',$age) { $this->name = $name; $this->age = $age; echo '欢迎来到我的个人简介'.'<br>'.'姓名:'.$this->name.'<br>'; } public function getInfo() { return '年龄:'.$this->age.'<br>'; } } //实例化 $result = new demo('高老师','20'); echo $result->getInfo(); echo '<hr>'; //子类demo1 继承 父类 demo class demo1 extends demo { public $address; //子类的构造函数 public function __construct($address, $name = '洪吉潮' , $age) { $this->address = $address; //继承父类的构造函数 parent::__construct($name, $age); } //方法重写 public function getInfo() { return parent::getInfo().'哪里人:'.$this->address; // TODO: Change the autogenerated stub } } $result1 = new demo1('广东人','洪吉潮','22'); echo $result1->getInfo(); echo '<hr>'; //子类demo2 继承父类demo1 class demo2 extends demo1 { public $teacher; //子类demo2构造函数 public function __construct($teacher,$address, $name = '洪吉潮', $age) { $this->teacher = $teacher; //继承父类demo1的构造函数 parent::__construct($address, $name, $age); } //方法重写 public function getInfo() { $getinfo = parent::getInfo(); return $getinfo.'<br>'. '师从何人:'.$this->teacher; } } $result2 = new demo2('没有老师','浙江人','李文茜','18'); echo $result2 -> getInfo();
点击 "运行实例" 按钮查看在线实例