PHP学习第十四课:类的简易实现
《第十四课:类的简易实现》要点: 感谢关注PHP学习坊,文章内容由坊收集整理,如有错误或者疏漏之处,欢迎在评论区指出,也欢迎大家积极评论转发.小编需要来自你们订阅、评论的支持,吐槽也好,支持也罢,欢迎大家积极评论. 本日的内容,是针对昨天的内容进行一次简单的代码实现 父类 子类 <?php /** * Class Person 基础父类 */ class Person { public $age; //年龄 public $name; //姓名 public $height; //身高 /** * @desc 说 办法 */ public function say() { return "我会说话"; } public function sing() { return "我会唱歌"; } } class FengGong extends Person { public function say() { $parent = parent::say(); // 实现父类的say办法 //下面是自己独有的内容 return $parent." 我不仅会说,而且能说相声n"; } } $person = new FengGong(); //为各个成员变量赋值 $person->age = 20; $person->name = '冯巩'; $person->height = 180; echo "我叫 {$person->name},我本年 {$person->age},我的身高 {$person->height},我的能力 {$person->say()}"; ?> 有兴趣的朋友可以手动敲一遍代码,自己体会下.但是大家可能注意到一点,对于成员变量,用的都是 public,要使用private呢?这就需要提供一组set 和get办法.具体代码如下: <?php /** * Created by PhpStorm. * User: 坊 * Date: 17/2/26 * Time: 下午6:57 */ /** * Class Person 基础父类 */ class Person { private $age; //年龄 private $name; //姓名 private $height; //身高 /** * @desc 说 办法 */ public function say() { return "我会说话"; } public function sing() { return "我会唱歌"; } public function set( $property,$value ) { $this->{$property} = $value; } public function get( $property ) { return $this->{$property}; } } class FengGong extends Person { public function say() { $parent = parent::say(); // 实现父类的say办法 //下面是自己独有的内容 return $parent." 我不仅会说,而且能说相声n"; } } $person = new FengGong(); //为各个成员变量赋值 /* * 这时候这样赋值是会报错的,同理之前的拜访也会报错 * $person->age = 20; * $person->name = '冯巩'; * $person->height = 180; */ $property = array( 'age' => 20, 'name' => '冯巩', 'height'=> 180 ); foreach ( $property as $key => $value ) { $person->set( $key,$value ); } echo "我叫 {$person->get('name')},我本年 {$person->get( 'age' )},我的身高 {$person->get('height')},我的能力 {$person->say()}"; 那可能会有朋友会说,何必设置成私有,还要提供一组方法,来设置值与获取值?其实这样做的好处就是,防止变量的值被肆意的乱改,能有效地控制拜访权限. 以上就是本日的内容,谢谢大家. 欢迎参与《第十四课:类的简易实现》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |