php面向对象之-延迟绑定复习-132
2014-08-19 18:12
441 查看
<span style="font-size:14px;"><?php //01.php /**** 燕十八 公益PHP讲堂 论 坛: http://www.zixue.it 微 博: http://weibo.com/Yshiba YY频道: 88354001 ****/ /*** ====笔记部分==== ***/ class Animal { const age = 1; public static $leg = 4; public static function cry() { echo '呜呜<br />'; } public static function t1() { self::cry(); echo self::age,'<br />'; echo self::$leg,'<br />'; } public static function t2() { static::cry(); echo static::age,'<br />'; echo static::$leg,'<br />'; } } class Human extends Animal { public static $leg = 2; public static function cry() { echo '哇哇<br />'; } } class Stu extends Human { const age = 16; public static function cry() { echo '嘤嘤<br />'; } } Stu::t1(); //呜呜,1,4 Stu::t2(); // 嘤嘤,16,2 ?></span><span style="font-size: 18px;"> </span>
对于Stu:t1()的结果:先在Stu类中找t1, 找不到,到Human类中找,也没有,继续找Animal,有t1, 因此绑定了Animal 类,所以结果应该是self绑定为Animal,因此应该 是 echo $Animal::age; echo
$Animal::leg;
对于Stu:t2()的结果:先在Stu类中找t2, 找不到,到Human类中找,也没有,继续找Animal,有t2,而此前加的是 static,先绑定Animal,再绑定Stu类,所以结果应该是self绑定为Animal,因此应该 是 echo
$Animal::leg; echo $Stu::age 。
(不要问为什么会这样,我也不知道,因为php中的运行机制就是这样)
相关文章推荐
- php面向对象笔记8 抽象类与延迟绑定复习和接口
- php的延迟静态绑定
- php延迟绑定
- PHP面向对象之后期静态绑定功能介绍
- PHP静态延迟绑定
- PHP面向对象:延迟静态绑定(static关键字)
- PHP内核探索:魔术函数与延迟绑定
- PHP延迟绑定练习
- php中的继承和延迟静态绑定的问题
- PHP延迟静态绑定
- PHP静态延迟绑定 static
- php 通过__callStatic魔术方法实现方法的动态创建和延迟绑定
- PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
- PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
- PHP面向对象之后期静态绑定功能介绍
- 关于php面向对象的复习(2)--单例模…
- PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定
- PHP静态延迟绑定和普通静态效率简单对比
- php之类常量/魔术常量/延迟绑定
- 174 php 延迟绑定 抽象类 self call_user_func_array