2014-11-21 42 views
0
<?php 

class Main 
{ 
    public function findSub($name = null) 
    { 
     Sub::show($name); 
    } 
} 

class Sub 
{ 
    public function show($name = null) 
    { 
     echo 'I am ' . $name; 
    } 
} 

$main = new Main; 
$main->findSub('chan'); // I am chan 

正如我记得,如果你想通过className::functionName()使用另一个类,您需要声明的功能static,在这种情况下,我叫秀静态的方式不声明该函数为静态函数,但它仍然工作,怎么样?使用另一个类的静态函数

回答

1

到目前为止,我认为你已经抑制了E_STRICT警告。它起作用(可能是因为遗留原因),但不推荐。由于遗留原因,任何类方法都可以被静态调用,即使它没有被声明为静态的,因为你之前不能声明它们。

Calling non-static methods statically generates an E_STRICT level warning. 

对于官方文档refer this

+0

另外,在更高版本的PHP,当你调用静态静态非PHP函数,你可能会致命错误。 – 2014-11-21 04:54:11

相关问题