`
kirenenko04
  • 浏览: 152250 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

self() 方法 和 static() 方法的区别

    博客分类:
  • php
 
阅读更多

self(): 返回从定义方法的类的实例

static(): 返回使用方法的类的实例(可以是继承出来的类)

 

例如:

class A {
    public static function get_self() {
        return new self();
    }

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

class B extends A {}

echo get_class(B::get_self());  // A
echo get_class(B::get_static()); // B
echo get_class(A::get_static()); // A

 

 

分享到:
评论

相关推荐

    【JavaScript源代码】php类中static与self的使用区别浅析.docx

     静态绑定是PHP 5.3.0,增加的一个功能 用于在继承范围内引用静态调用的类 php类中static和self的区别,php类的定义中经常能看到self和static,在运行的时候经常发现结果并没有区别,但是肯定不是没有区别,因为...

    Objective-C类方法中使用self注意事项

    本文将详细探讨在类方法中使用`self`的关键注意事项,以帮助开发者更好地理解和避免潜在的问题。 首先,理解Objective-C中的`self`关键字。在类方法中,`self`代表的是类本身,而在实例方法中,`self`则是指向当前...

    php面向对象编程self和static的区别

    总结一下,`self` 和 `static` 的关键区别在于: 1. `self` 总是指向定义它的类,即静态成员被声明的类,不受子类继承的影响。 2. `static` 关键字则允许在运行时动态绑定,根据实际调用的类来确定要执行的方法,...

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

    在PHP编程语言中,`new self` 和 `new static` 都是用来实例化类的静态方法,但它们之间存在一些重要的区别。理解这些差异对于编写可扩展和灵活的面向对象代码至关重要。 首先,我们来看一下这两个关键字的基本用法...

    Self-Supervised Motion Learning From Static Images.pdf

    本文提出的“Self-Supervised Motion Learning From Static Images”(简称MoSI)旨在通过自监督学习解决这一问题。作者Ziyuan Huang等人创新性地提出从静态图像中学习运动,模型通过分类由MoSI方法生成的伪运动来...

    PHP面向对象之旅深入理解static变量与方法

    静态变量和方法与类紧密关联,而非与类的实例相关。下面我们将深入探讨`static`关键字的工作原理及其应用场景。 1. **静态变量** 静态变量是属于类本身而非类的实例的变量。这意味着所有类的实例共享同一份静态...

    PHP中new static() 和 new self() 的区别介绍

    在PHP面向对象编程中,self关键字和static关键字均用于引用类自身,但它们在不同场景下有各自的用途和区别。self关键字用于在类的静态方法中引用其所在的类,而static关键字则是在PHP5.3之后引入的,用于引用类的...

    PHP中static关键字以及与self关键字的区别

    主要介绍了PHP中static关键字以及与self关键字的区别,本文讲解了static关键字的定义、迟绑定(Late Static Bindings)、以及与self关键字的区别等内容,需要的朋友可以参考下

    PHP中new static()与new self()的比较

    今天在coding的时候,发现了 new static(),觉得实例化的地方不是应该是 ...然后通过子类直接/间接用到了这个static, 这个static指的就是这个子类, 所以说static和$this很像, 但是static可以用于静态方法和属性等. 具体

    php面对对象中static静态属性和静态方法的调用_.docx

    静态属性和方法在类中有着特殊的地位,它们不依赖于类的实例化即可使用,这使得它们在某些场景下非常有用。下面我们将深入探讨 `static` 的概念、使用方式以及它们在内存中的存储机制。 首先,我们来看一下静态属性...

    PHP new static 和 new self详解

    首先,`self` 关键字是用于访问类的静态属性和方法的,它总是指向定义当前方法或属性的类。换句话说,`self` 是编译时的绑定,它不会随着对象的实例化或继承关系的变化而变化。在`new self`中,`self`关键字用来创建...

    PHP面向对象中new self()与 new static()的区别浅析

    在PHP的面向对象编程中,`new self()` 和 `new static()` 是两个常见的构造语法,它们在创建对象时的行为有所不同,特别是在涉及到继承和静态方法时。理解这两个关键字的区别是编写可扩展和灵活代码的关键。 首先,...

    浅谈PHP中new self()和new static()的区别

    因此,总结new self()和new static()的区别,主要体现在两个方面: 1. new self()总是返回定义它的类的实例。不论这个方法是在父类还是子类中被调用,它都会返回同一个类的实例。 2. new static()返回的实例取决于...

    php 中self,this的区别和操作方法实例分析

    下面将详细阐述它们的区别和使用方法。 一、`self` 关键字 `self` 关键字主要用于访问类的静态属性和静态方法。这意味着,无论何时调用 `self`,它总是指向当前类本身,而不是类的实例。因此,`self` 不依赖于任何...

    PHP5中的this self和parent关键字详解

    - 创建`$personObject`对象并调用`printPerson`方法时,`parent`关键字使得`Person`类能够访问并使用`Animal`类中的构造函数和其他方法或属性。 通过以上三个关键字的详细介绍,我们可以看到它们在PHP面向对象编程...

    PHP5中的this,self和parent关键字详解教程

    self关键字用于引用当前类本身,常用于访问类的静态成员,比如静态方法和静态属性。parent关键字则用于引用当前类的父类,常用于调用父类的方法和属性。 接着,通过具体的代码示例,我们可以更清楚地看到它们的用法...

Global site tag (gtag.js) - Google Analytics