当前位置: 首页 > 编程笔记 >

PHP延迟静态绑定示例分享

诸福
2023-03-14
本文向大家介绍PHP延迟静态绑定示例分享,包括了PHP延迟静态绑定示例分享的使用技巧和注意事项,需要的朋友参考一下

没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了

<?php
class A {
 protected static $def = '123456';

 public static function test() {
  echo get_class(new static);
 }

 public static function test2() {
  echo static::$def;
 }
}

class B extends A {
 protected static $def = '456789';
}

class C extends A {
 protected static $def = 'abcdef';
}

echo B::test();
echo '<br>';
echo C::test();
echo '<br>';
echo B::test2();
echo '<br>';
echo C::test2();
echo '<br>';
echo A::test();
echo '<br>';
echo A::test2();
echo '<br>';
// 输出结果
B
C
456789
abcdef
A
123456

 类似资料:
  • 本文向大家介绍php延迟静态绑定实例分析,包括了php延迟静态绑定实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php延迟静态绑定的方法。分享给大家供大家参考。具体分析如下: php延迟静态绑定:指类的self,不是以定义时为准,而是以计算时的运行结果为准。先看一个实例   说明: (1)子类实例化对象 $stu 调用say方法时,是在父类Human内运行的,所以,say()里的

  • 本文向大家介绍PHP Static延迟静态绑定用法分析,包括了PHP Static延迟静态绑定用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP Static延迟静态绑定用法。分享给大家供大家参考,具体如下: PHP5.3以后引入了延迟静态绑定static,它是为了解决什么问题呢?php的继承模型中有一个存在已久的问题,那就是在父类中引用扩展类的最终状态比较困难。来看一个例子。

  • 本文向大家介绍PHP延迟静态绑定的深入讲解,包括了PHP延迟静态绑定的深入讲解的使用技巧和注意事项,需要的朋友参考一下 前言 所谓延迟静态绑定,顾名思义,静态调用时::符号左侧的部分的的绑定是延迟,也就是说不再被解析为定义当前方法所在的类,而是在实际运行时计算的。本文主要介绍了关于PHP延迟静态绑定的相关内容,下面话不多说了,来一起看看详细的介绍吧。 嗅到了坏的味道 这段时间看项目后台的PHP代码

  • 我们知道静态绑定发生在私有、静态、最终和重载的方法上,而动态绑定发生在被覆盖的方法上。但是如果我的方法只是公共的,它既不是静态的,也不是覆盖和重载的怎么办? 有人能给我解释一下print()的绑定会怎样,因为它既没有重载也没有被覆盖。

  • 在java-9中,在CompletableFuture类中引入了新方法completeOnTimeout 我不明白的是为什么它在其实现中使用静态: 在哪里 对我来说,这是一种非常奇怪的方法,因为它可能会成为整个应用程序的瓶颈:唯一的,只有一个线程保留在所有可能的任务的池内? 我错过了什么? P、 它看起来像: > 此代码的作者不愿意提取此逻辑,而是更愿意重用ScheduledThreadPoolE

  • 问题内容: 我对动态绑定和静态绑定感到非常困惑。我已经读过,在编译时确定对象的类型称为静态绑定,而在运行时确定它的称为动态绑定。 下面的代码会发生什么: 静态绑定还是动态绑定? 这表明什么样的多态性? 问题答案: 您的示例是 动态绑定 ,因为在运行时确定类型是什么,并调用适当的方法。 现在假设您也具有以下两种方法: 即使您更改为 这将打印出来,因为对的调用使用 静态绑定 ,并且编译器仅知道其类型。