发布时间:2008-11-25 10:21 作者: wangpro 信息来源: PHPchina [我来说两句(849条)] 看了一下PHP5.3的Late Static Bindings,简单了翻译一下 Late Static Bindings是在PHP5.3中加入的新特性,拼音来说,就是把本来在定义阶段固定下来的表达式或变量,改在执行阶段才决定,比如当一个子类继承了父类的静态表达式的时候,它的值并不能被改变,有时不希望看到这种情况
<!---->
但是现在我想让其输出B,那么使用Late Static Bindings可实现这一特性了
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();//输入A
?>
但是现在我想让其输出B,那么使用Late Static Bindings可实现这一特性了
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // Late Static Bindings
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();//输出B
?>
<!---->
分享到:
相关推荐
这篇文章将深入探讨PHP5.3引入的延迟静态绑定(Late Static Bindings, LSB),它旨在解决PHP继承模型中一个长期存在的问题。 传统的静态方法调用,如使用`self`关键字,会在方法定义时绑定到类。这意味着在继承链中...
为了解决这个问题,PHP 引入了后期静态绑定(Late Static Bindings,LSB),用 `static` 关键字代替 `self` 来实现动态绑定。`static` 关键字在运行时会根据实际调用静态方法的类来决定引用哪个类的方法,而不是按照...
2. **Late Static Bindings (LSB)**:这是PHP中的一个关键概念,用于解决静态方法调用时的绑定问题。在继承链上,LSB确保静态方法始终绑定到实际调用它的类,而不是定义它的类。 3. **Traits**:Traits是一种代码...
其次,PHP 5.3.5支持晚期静态绑定(Late Static Bindings)。这个特性解决了静态方法调用时,父类和子类继承关系的问题。在之前的版本中,静态方法总是绑定到定义它的类,而晚期静态绑定使得静态方法能在继承链上...
其次,PHP 5.3开始支持晚期静态绑定(Late Static Bindings),这解决了静态方法调用时的动态上下文问题。在继承链中,晚期静态绑定使得子类可以正确地调用父类的静态方法,即使该调用是通过父类的静态引用进行的。 ...
其次,该版本引入了晚期静态绑定(Late Static Bindings)。在继承链中,静态方法调用时,晚期静态绑定允许你引用实际调用的类,而不是定义方法的类。这解决了 PHP 中静态方法调用时绑定到父类的问题。 另外,PHP ...
首先,PHP5.3.8引入了重要的错误处理机制,如晚期静态绑定(Late Static Bindings),这允许开发者在静态上下文中调用父类方法时保持类型安全。此外,它还加强了命名空间(Namespaces)的支持,这是面向对象编程中的...
2. **晚期静态绑定(Late Static Bindings)**:这个特性解决了静态方法调用时的绑定问题,使得子类可以正确地调用父类的静态方法,增强了多态性。在PHP 5.3之前,静态方法总是绑定到定义它们的类,而晚期静态绑定则...
PHP 5.3.2是PHP发展史上的一个重要里程碑,它在5.3系列中引入了许多新的功能和改进,包括命名空间(Namespaces)、晚期静态绑定(Late Static Bindings)、闭包(Closures)等,极大地提升了代码的组织性和可维护性...
3. **晚期静态绑定(Late Static Bindings)**:在继承链中调用静态方法时,PHP5.3引入了晚期静态绑定,允许调用子类中的静态方法,即使在父类中进行调用。 4. **类常量(Class Constants)**:开发者可以在类定义...
此外,它还包含了晚期静态绑定(Late Static Bindings),这是一种面向对象编程中的重要特性,允许静态方法调用在其被定义的类上下文中执行,而不是调用时的类上下文。 在函数方面,PHP 5.3.29引入了闭包(Closures...
其中最引人注目的可能是晚期静态绑定(Late Static Bindings),这是一个允许静态方法调用在运行时解析其实际调用的对象或类的功能。此外,还增加了命名空间(Namespaces)支持,使得代码组织更加有序,降低了命名...
主要介绍了PHP中static关键字以及与self关键字的区别,本文讲解了static关键字的定义、迟绑定(Late Static Bindings)、以及与self关键字的区别等内容,需要的朋友可以参考下
- 添加了晚期静态绑定(Late Static Bindings),用于解决静态方法调用时的动态上下文问题。 - 引入了闭包(Closures),提供了内联函数和匿名函数的功能,增强了函数式编程能力。 - 错误报告提升,增加了错误处理的...
2. **晚期静态绑定(Late Static Bindings)**:此功能允许在继承链中静态调用方法时,保持对实际调用类的引用,解决了之前静态方法绑定的一些局限性。 3. **闭包(Closures)**:也称为匿名函数,PHP 5.3引入了...
此外,该版本还添加了晚期静态绑定(Late Static Bindings)。这个特性解决了静态方法调用时,绑定到父类而非实际调用类的问题。通过使用`static`关键字,静态方法可以在继承链中正确地指向子类实例。 PHP 5.3.10 ...
此版本的PHP引入了对象模型的增强,包括晚期静态绑定(Late Static Bindings),使得类和对象的静态调用更加灵活。此外,该版本还增强了错误处理机制,提供了更好的错误报告,帮助开发者更快地定位和解决问题。 在...
2. **晚期静态绑定(Late Static Bindings)**:在继承链中调用静态方法时,早期版本的PHP会绑定到定义该方法的类,而PHP 5.3引入的晚期静态绑定允许在运行时绑定到实际调用静态方法的类,这对于多层继承的静态方法...
3. ** late static bindings(静态绑定)** 在继承链中,PHP5.3引入了晚期静态绑定,允许子类调用父类的静态方法时,使用子类的类型来解析静态属性。这是对早期静态绑定的一种改进,提高了代码的灵活性和可扩展性。...
- PHP5.3:添加了lambda函数(匿名函数)和后期静态绑定(Late Static Bindings),进一步完善了OOP功能,延长了生命周期至2014年。 - PHP5.4:引入了 Traits,提高了类的复用性,并默认开启了Suhosin-Patch,提升了...