总结self, parent的用法
2016-07-20 17:07
417 查看
self: 本类(是类 不是对象)
parent: 父类
parent: 父类
<?php /*** ====笔记部分==== 在引入自身的静态属性/静态方法 以及父类的方法时,可以用到. 用法: self::$staticProperty self::staticMothed; parent::$staticProperty parent::Mothed; ***/ /* class Human { static public $head = 1; public function say() { echo Human::$head,'<br />'; } } echo Human::$head,'<br />'; // 1 $lisi = new Human(); $lisi->say(); // */ // 某一天,类名要统一,规范化. Human不叫Human了,叫cHuman // 导致类内部,凡引用到自身类名的也要改 class cHuman { static public $head = 1; public function say() { echo self::$head,'<br />'; } } echo cHuman::$head,'<br />'; // 1 $lisi = new cHuman(); $lisi->say(); // class Stu extends cHuman { static public $head = 2; public function say() { echo self::$head,'<br />'; echo '父类只有',parent::$head,'<br />'; } } $ming = new Stu(); $ming->say(); // ========一位同学的疑问,$this,还用parent====// class a{ public function a1(){ echo 'this is class function a1()'; } } class b extends a{ public function b1(){ $this->a1(); } public function b2(){ parent::a1(); } } $b = new b(); $b->b1(); $b->b2(); /* 上面2个调用,显示效果一样的, 如果从速度角度看,理论上parent::稍快一点点. 因为在子类寻找a1方法,寻找不到,再去其父类寻找. 但是从面向角度看,继承过来的,就是自己的. $this 更符合面向的思想. 举一个反例 class a { } class b extends a { } class c extends b { } ... ... class f extends e { parent::parent::parent:: 总不能这么写吧? } 没意义。。。 */ ?>
相关文章推荐
- 总结self, parent的用法
- C++——map
- spark源码解析1
- Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)
- codeforces水题100道 第十一题 Codeforces Round #143 (Div. 2) A. Team (brute force)
- js报错:Uncaught SyntaxError: Unexpected token ILLEGAL
- 2016 Multi-University Training Contest 1 1005 Necklace
- 各种数据报头信息
- linux下乱码问题及解决方式
- androidone -小插件倒计时
- Android Image 圆角图片与圆形图片 ImageView
- Linux环境下修改python matplotlib显示中文乱码方格
- 阿里云服务器安全配置
- HDU 1999 不可摸数 (约数和。。)
- Node——异步I/O
- Linux学习笔记
- 工厂模式
- ionic开发移动应用总结
- 字符串匹配
- Scala学习日志——一切从使用开始