“static :: function()”是什么意思?

问题描述:

可能重复:
static::staticFunctionName()“static :: function()”是什么意思?

当它只是一个函数调用之前放在什么关键字static是什么意思?代替班级名称。

像这样:

static::createKernel(); 
+3

它确实[晚期静态绑定](http://php.net/manual/en/language.oop5.late-static-bindings.php)。文档页面有一些简短的例子。 – Jon

这是调用Late Static Binding的一种方式。我无法做比PHP手册本身更好的描述。

它有差不多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 
?>