PHP的new static和new self的区别与使用

 更新时间:2019年11月27日 10:52:33   作者:晓轩  
这篇文章主要介绍了PHP的new static和new self的区别与使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

下面我们举个栗子:

class Father {
  public static function getSelf() {
    return new self();
  }

  public static function getStatic() {
    return new static();
  }
}

class Son extends Father {}

echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father

new self

这里面注意这一行 get_class(Son::getStatic()); 返回的是 Son 这个 class, 可以总结如下:
self 返回的是 new self 中关键字 new 所在的类中,比如这里例子的 :

public static function getSelf() {
  return new self(); // new 关键字在 Father 这里
}

始终返回 Father。

new static

static 则上面的基础上,更聪明一点点:static 会返回执行 new static() 的类,比如 Son 执行 get_class(Son::getStatic()) 返回的是 Son, Father 执行 get_class(Father::getStatic()) 返回的是 Father

而在没有继承的情况下,可以认为 new self 和 new static 是返回相同的结果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • laravel实现上传图片并在页面显示的例子

    laravel实现上传图片并在页面显示的例子

    今天小编就为大家分享一篇laravel实现上传图片并在页面显示的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • thinkphp5.0整合phpsocketio完整攻略(绕坑)

    thinkphp5.0整合phpsocketio完整攻略(绕坑)

    这篇文章主要介绍了thinkphp5.0整合phpsocketio完整攻略(绕坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • destoon设置自定义搜索的方法

    destoon设置自定义搜索的方法

    这篇文章主要介绍了destoon设置自定义搜索的方法,需要的朋友可以参考下
    2014-06-06
  • PHP+Ajax验证码验证用户登录

    PHP+Ajax验证码验证用户登录

    这篇文章主要为大家详细介绍了PHP+AJAX验证码验证用户登录的相关资料
    2016-07-07
  • YII框架常用技巧总结

    YII框架常用技巧总结

    这篇文章主要介绍了YII框架常用技巧,结合实例形式总结分析了Yii框架控制器、查询、表单验证、SQL查询等常用操作技巧与相关注意事项,需要的朋友可以参考下
    2019-04-04
  • PHP的openssl加密扩展使用小结(推荐)

    PHP的openssl加密扩展使用小结(推荐)

    下面小编就为大家带来一篇PHP的openssl加密扩展使用小结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Laravel 加载第三方类库的方法

    Laravel 加载第三方类库的方法

    这篇文章主要介绍了Laravel 加载第三方类库的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 基于thinkPHP类的插入数据库操作功能示例

    基于thinkPHP类的插入数据库操作功能示例

    这篇文章主要介绍了基于thinkPHP类的插入数据库操作功能,结合实例形式分析了thinkPHP数据库操作的常用技巧,需要的朋友可以参考下
    2017-01-01
  • 深入了解PHP中的Array数组和foreach

    深入了解PHP中的Array数组和foreach

    下面小编就为大家带来一篇深入了解PHP中的Array数组和foreach。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • php行为验证码防止短信轰炸实例

    php行为验证码防止短信轰炸实例

    这篇文章主要为大家介绍了php行为验证码来防止短信轰炸实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09

最新评论