在程式設計語言中,名字绑定是把实体(数据或/且代码)关联到标识符。标识符绑定到实体被称为引用该对象。机器语言没有内建的标识符表示方法,但程序设计语言实现了名字与对象的绑定。绑定最初是与作用域相关,因为作用域确定了哪个名字绑定到哪个对象——在程序代码中的哪个位置与哪条执行路径。
绑定时机
- 静态绑定(Static binding)或称早绑定(early binding):名字绑定发生在程序开始运行之前。
- 动态绑定(Dynamic binding)或称迟绑定(late binding)、虚绑定(virtual binding):名字绑定发生在程序运行时。具体说,上例中的self::$word如果改为下例中的static::$word,关键字static指示运行时才绑定,B::hello()的调用结果将是"bye":
class A
{
static $word = "hello";
static function hello() { print static::$word; }
}
class B extends A
{
static $word = "bye";
}
B::hello();
参见
*
- 分支表
- 动态分派
- (HOAS)
参考文献
评论 (0)