"static::function()"是什么意思?

3

可能重复:
static::staticFunctionName()

当关键字 static 放置在函数调用之前时,它是什么意思?放在类名的位置。

像这样:

static::createKernel();

3
它使用了“延迟静态绑定”(late static binding)。文档页面提供了简短明了的示例。 - Jon
2个回答

6

这是一种调用延迟静态绑定的方式。我无法比PHP手册本身更好地描述它。


1

它与 self 的意思几乎相同,但是它引用的是实际类,而不是代码所在的类。来自 php.net 的示例:

<?php 

class A { 
    const C = 'constA'; 
    public function m() { 
        echo static::C; 
    } 
} 

class B extends A { 
    const C = 'constB'; 
} 

$b = new B(); 
$b->m(); 

// output: constB 
?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接