美文网首页
php中继承父类的子类如何使用父类的方法实例化自己

php中继承父类的子类如何使用父类的方法实例化自己

作者: houxin | 来源:发表于2020-06-06 15:40 被阅读0次

这其实就是selfstatic的区别
结论: 使用static即可。
如下

$model = new static();

这是继承common的类

namespace App\Models;

class Order extends Common
{
    //
}

以下根据不同的common类修改,展示效果。

self实例

以下以laravel的模型继承来展示实例,common类的内容如下:

<?php

namespace App\Models;

class Common extends Outside
{
    // 返回已经可以设置完成数据库的实例
    public static function getIns($db){
        $self = new self();
        $self->setConnection($db);
        return $self;
    }
}

此时查询的语句是:

select * from "commons"

很明显, 不是我们想要的,我们想查询orders表的数据。

static实例

以下以laravel的模型继承来展示实例,common类的内容如下:

<?php

namespace App\Models;

class Common extends Outside
{
    // 返回已经可以设置完成数据库的实例
    public static function getIns($db){
        $self = new static();
        $self->setConnection($db);
        return $self;
    }
}

此时查询的语句是:

select * from "orders"

此时就是查询orders表的数据了。

结论

1.没有继承时候,你用self::class 和 static::class是一样的,都是获取当前类名。
2.如果用到了继承,并且这个方法在父类,self指向的是当前的类。static指向的是最终那个子类,也就是使用此方法的类。

相关文章

  • Java继承

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父...

  • JAVA 继承

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父...

  • java 继承 子类强转父类 父类强转子类

    Java 继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法...

  • Java 面向对象

    JAVA继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,...

  • 面向对象-继承

    概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类...

  • 关于Java的面向对象

    1继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子...

  • python学习笔记-day020

    1.通过对象调用类中的方法 2.子类调用父类中的方法 3.初识继承 子类以及子类实例化的对象 可以访问父类的任何方...

  • 访问子类对象的实例变量

    子类的方法可以访问父类的实例变量,这是因为子类继承父类,就会获得父类的成员变量和成员方法,父类的方法不能访问子类的...

  • javascript的六种继承方式

    js中常用的继承方式:子类继承父类的方法 1、原型继承 子类的原型指向父类的一个实例 父类的私有和公有方法都是子类...

  • Java面向对象(1)

    一. 继承 1.1 继承的概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法。在此...

网友评论

      本文标题:php中继承父类的子类如何使用父类的方法实例化自己

      本文链接:https://www.haomeiwen.com/subject/vuoxtktx.html