php延迟静态绑定实例分析

yipeiwu_com6年前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会话控制实例分析

本文实例讲述了PHP会话控制。分享给大家供大家参考,具体如下: 关于cookie和session的测试代码: <?php session_start(); define...

PHP 二维array转换json的实例讲解

PHP提供函数直接将array转换成json json_encode($param_array); 若需要下面这种嵌套式如何处理呢? { "appid": "15000011...

php计算两个坐标(经度,纬度)之间距离的方法

本文实例讲述了php计算两个坐标(经度,纬度)之间距离的方法。分享给大家供大家参考。具体如下: 这里使用php计算两个坐标(经度,纬度)之间的距离,返回结果为米或者千米 functi...

PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解

本文实例讲述了PHP创建文件及写入数据(覆盖写入,追加写入)的方法。分享给大家供大家参考,具体如下: 这里主要介绍了PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码,需要的朋友可...

PHP include_path设置技巧分享

PHP include_path设置技巧分享

1.include_path的意义 当时候函数include(),require(),fopen_with_path()函数来寻找文件时候.在不设置include_path的情况下,这些...