PHP后期静态绑定

简介: PHP后期静态绑定
  • 在看到后期静态绑定这个词的时候,感觉挺官方的,不太好理解,这里为我权当做个笔记了

即在类的继承过程中,使用的类不再是继承的类.而是调用的类,通过static关键字来实现,"static"不在被解析定义为当前方法所在的类,而是在实际运行时计算得到的,即为运行时最初调用的类,虽然称为后期静态绑定 但是并不局限于静态方法的调用

class A
{
    public static function call()
    {
      echo "class A";
    } 
    public static function test()
    {
      self::call();
      static::call();
    }
}
class B extends A
{
    public static function call()
    {
      echo "class B";
    }
}
B::test();
// 输出 class A   class B

在上面的实例中,在调用test() 函数的时候,"self::"是直接调用的本类中的方法,而static是根据调用test()函数的类来决定"static::"的值,因此static的值只有在调用时才能确定下来.这里需要注意的是,static并不限于静态方法的调用,它同样适用于非静态方法,调用的方式如上一致,是在调用时动态确定的,下面给出例子

class A
{
    public function call()
    {
      echo "instance from A\n";
    } 
    public function test()
    {
      self::call();
      static::call();
    }
}
class B extends A
{
    public function call()
    {
      echo "instance from B";
    }
}
$b = new B();
$b->test();
// 输出 instance from A   instance from A

本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

目录
相关文章
|
10月前
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
|
10月前
|
PHP 数据库
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
弹性计算 PHP
PHP警告:socket_bind():无法绑定地址
PHP警告:socket_bind():无法绑定地址
427 0
|
存储 PHP
php面对对象之后期绑定
php面对对象之后期绑定
157 0
php面对对象之后期绑定
|
PHP 对象存储 数据安全/隐私保护
阿里云OSS php 自定义域名 绑定bucket
做OSS图片上传时,可以采用阿里云分配的oss域名,也可以使用自定义域名(绑定用户域名),使用阿里云域名太长,不美观,我使用的绑定用户域名。使用阿里云分配域名时图片文件可以正常上传,使用自定义绑定用户域名时发现报错.
2327 0
阿里云OSS php 自定义域名 绑定bucket
|
SQL 关系型数据库 MySQL
|
关系型数据库 MySQL PHP
Windows Azure免费空间如何搭建PHP网站/数据库、域名绑定
7月份,阿象为大伙介绍了中国版Windows Azure如何建站、自定义远程虚拟机,最高可选四核、28G内存的服务器,相信不少站长、开发者用户大呼过瘾。不过Azure建站系统仅支持SQL数据库,并不支持大家熟悉的MySQL平台。
3375 0