gpt4 book ai didi

php - 静态::静态函数名()

转载 作者:可可西里 更新时间:2023-10-31 22:44:17 26 4
gpt4 key购买 nike

我知道 self::staticFunctionName()parent::staticFunctionName() 是什么,以及它们之间以及与 $this 的区别->函数名

但是 static::staticFunctionName() 是什么?

最佳答案

它是 PHP 5.3+ 中用于调用后期静态绑定(bind)的关键字。
在手册中阅读所有相关信息:http://php.net/manual/en/language.oop5.late-static-bindings.php


总而言之,static::foo() 的工作方式类似于动态的 self::foo()

class A {
static function foo() {
// This will be executed.
}
static function bar() {
self::foo();
}
}

class B extends A {
static function foo() {
// This will not be executed.
// The above self::foo() refers to A::foo().
}
}

B::bar();

static 解决了这个问题:

class A {
static function foo() {
// This is overridden in the child class.
}
static function bar() {
static::foo();
}
}

class B extends A {
static function foo() {
// This will be executed.
// static::foo() is bound late.
}
}

B::bar();

static 作为此行为的关键字有点令人困惑,因为它只是。 :)

关于php - 静态::静态函数名(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4120755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com