在使用PHP代码时,您可能经常会遇到parent::、static::和self::。但是当你第一次作为一个开发人员开始的时候,有时候你会很困惑,不知道它们是做什么的,以及它们之间的区别。在我第一次作为开发人员开始工作后的很长一段时间里,我认为static::和self::是完全一样的。假设我们有一个BaseTestCase类,它有一个setUp
self写在哪个类里面,它固定指向的就是当前的这个类 static就是哪个对象调用它,它指向的就是这个调用者 从代码中我们可以看出,B类没有重写selfName()方法,所以B类调用selfName()时调用的是父类A的selfName()方法,self在这个方法中指向的是A类。而C类重写了父类的selfName()方法,在调用C类的selfName()时,这...
一般来说,我通常会使用static::而不是self::,因为我希望我的类是可扩展的 例如,假设我想写一个类,我完全打算由子类继承(例如上面示例中的BaseTestCase类)。除非我真的想防止子类重写属性或方法,否则我想使用static::。 这意味着我可以有信心,如果我重写任何静态方法或字段,我的子类将使用我的重写。我无法告诉你...
在PHP中,static和self关键字都用于访问类的静态成员,但它们之间存在一些关键差异,主要体现在它们如何处理继承: self 关键字: self 用于引用当前类中定义的成员和方法。 在类的继承中,self 始终指向定义当前方法的类,而不是在运行时动态决定的类。 举例来说,如果一个方法在父类中定义,并且使用 self 来引用一个静...
PHP中parent、this、self和static的区别 1、this 当一个对象要访问其方法时,会先完成一个绑定:将 $this 绑定到调用该方法的 对象。方法谁调用,$this 就指向谁。 2、self self 永远指向 定义它的类。也就是你在哪里写了 self,self 就代表哪个类。
之前的文章我们已经讲过,在 PHP 类的创建过程中,使用 self 作为类本身的引用,使用 $this 作为类对象的引用。 而在self 和 static 的使用上,有这细微的差别。特别是类继承过程中,self 可能带来意想不到的反应,也正如那篇文章所说,建议使用 static 作为类本身的引用。
$this,static,final,const,self这几个关键字使用方法。 $this $this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='phpernote';的形式。常见用法如: $this->属性 $this->方法 举例如下: <?phpclassMyClass{private$name;publicfunction__construct($name){$this->name=$nam...
PHP中self::和static::的区别 self关键字在编译时而非运行时确定其作用域 static关键字在运行时而非编译时确定其作用域 个人理解: 编译时就是你看到的文件代码的位置,不关心子类是否继承 运行时就是程序实际运行的时候的真实情况,如果有继承,那么就是有继承。
static static 常规用途是修饰函数或变量使其成为类函数和类变量,也可以修饰函数内变量延长其生命周期至整个应用程序的生命周期。但是其与 self 关联上是PHP 5.3以来引入的新用途:静态延迟绑定。 有了static 的静态延迟绑定功能,可以在运行时动态确定归属的类。例如: ...
self::$instance = new self($rules, $message, $field); } return self::$instance; } public static function __callStatic($method, $params) { $class = self::make(); if (method_exists($class, $method)) { return call_user_func_array([$class, $method], $params); ...