函数中的全局PHP类?

Mil*_*ike 4 php global class function

有没有办法在PHP中的函数内访问一个类的实例?像这样:

include("class.php");
$bla=new Classname();

function aaa(){
    $bla->DoSomething();  //Doesn't work.
}

$bla->DoSomething();  //Works.
Run Code Online (Sandbox Code Playgroud)

wim*_*vds 7

如果我正确地解释了你的问题,那么正确的方法是创建一个单例类.

class Singleton {
    private static $instance;

    private function __construct() {}
    private function __clone() {}

    public static function getInstance() {
        if (!Singleton::$instance instanceof self) {
             Singleton::$instance = new self();
        }
        return Singleton::$instance;
    }

    public function DoSomething() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以在你的函数中调用它,如下所示:

function xxx() {
    Singleton::getInstance()->DoSomething();
}
Run Code Online (Sandbox Code Playgroud)


Tat*_*nen 6

使用全局:

function aaa() {
    global $bla;
    $bla->DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

适用于所有变量,而不仅仅是类.