php之static后期绑定/延迟绑定

2024-06-08 08:48
文章标签 php 绑定 static 延迟 后期

本文主要是介绍php之static后期绑定/延迟绑定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 引出问题
  • 延迟绑定再复习
    • 知识点

引出问题

static延迟绑定

class Human {public static function whoami() {echo '来自父类的whoami在执行<br />';}public static function say() {self::whoami(); // 子类内没有say方法,找到了父类这里// 在这里的self 指的是 父类}public static function say2() {static::whoami();    //  子类也没有say2方法,又找到父类这里// 但是父类用static::whoami,// 指调用你子类自己的whoami方法}
}class Stu extends Human{public static function whoami () {echo '来自子类的whoami在执行<br />';}
}Stu::say();
Stu::say2();说明:如果子类也没有whoami()方法,则say2()最后调用的也是父类

延迟绑定再复习

知识点

类常量/静态属性/方法 –> 都是存放在类空间的
类常量用 const来定义

延迟绑定:
是指类的计算self的定义不是以定义时为准,而是以运行时的计算结果为准.

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

这篇关于php之static后期绑定/延迟绑定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041707

相关文章

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

SpringMVC入参绑定特别注意

1.直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则失效。 @RequestMapping("test2")@ResponseBodypublic DBHackResponse<UserInfoVo> test2(String id , String name){UserInfoVo userInfoVo = new UserInf

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re