php延迟静态绑定实例分析

yipeiwu_com5年前PHP代码库

本文实例讲述了php延迟静态绑定的方法。分享给大家供大家参考。具体分析如下:

php延迟静态绑定:指类的self,不是以定义时为准,而是以计算时的运行结果为准。先看一个实例

<?php
header("content-type:text/html;charset=utf-8");
class Human{
 public static function hei(){
 echo "我是父类的hei()方法";
 }
 public function say(){//如果子类调用父类的say()方法,则
 self::hei();//这里调用的是父类的hei()方法
 static::hei();
//这里调用子类的hei()方法,如果子类不存在hei()方法,则调用父类的
 }
}
class Stu extends Human{
 public static function hei(){
 echo "我是子类的hei()方法";
 }
}

$stu = new Stu();
$stu->say();
?>

 

说明:

(1)子类实例化对象 $stu 调用say方法时,是在父类Human内运行的,所以,say()里的self::hei()是调用父类的hei()方法。

(2)static::方法名():使用static关键词,则首先是在子类里查找该方法;如果找不到,则到父类中查找。

希望本文所述对大家的php程序设计有所帮助。

相关文章

使用PHP接收POST数据,解析json数据

复制代码 代码如下:<?php $json_string = $_POST["txt_json"]; if(ini_get("magic_quotes_gpc"...

PHP获取表单所有复选框的值的方法

通常来说,php中总是只获取最后一个复选框的值,那么如何才能获取所有复选框的值? 解决办法如下: form表单的部分代码如下: <input type="checkbox" n...

php中数字0和空值的区别分析

作为一个合格的php程序员,一些基础知识是必须要知道的,例如0和空的区别,关于这个区别,下面就通过几个实例进行简单的分析,其中的道理,只可意会,不可言传,读者可以自己去慢慢体会了。 复制...

php中理解print EOT分界符和echo EOT的用法区别小结

html与php编写中echo可以同时输出多个字符串,并不需要圆括号。 print只可以同时输出一个字符串,需要圆括号。 print的用法和C语言很像,所以会对输出内容里的%做特殊解释。...

php输出表格的实现代码(修正版)

网上的代码很多都是错误的,【宜配屋www.yipeiwu.com】特修正了下。复制代码 代码如下:<html> <head> <title>二行5列一...