PHP从静态函数中调用类

时间:2016-06-06 17:35:55

标签: php class static

我需要使用一个我需要在另一个类的多个静态函数中使用的PHP类。

创建一个类的实例以供PHP类中的静态函数使用的正确方法是什么?

我已尝试在课堂外实例化该课程。

<?php

$newClassInstance = new importedClass();
$newClassInstance->init();

Class Foo{
    public static function fooMatic(){
        $newClassInstance->doStuff();
    }
}
?>

出现此错误:

PHP Parse error:  syntax error, unexpected T_VARIABLE, expecting T_FUNCTION

...在每个功能内:     

Class Foo{
    public static function fooMatic(){

        $newClassInstance = new importedClass();
        $newClassInstance->init();

        $newClassInstance->doStuff();
    }
}
?>

错误:

Call to a member function doStuff() on a non-object 

在所有功能之前:

<?php

Class Foo{

    $newClassInstance = new importedClass();
    $newClassInstance->init();

    public static function fooMatic(){

        $newClassInstance->doStuff();
    }
}
?>

错误:

syntax error, unexpected T_VARIABLE, expecting T_FUNCTION

1 个答案:

答案 0 :(得分:1)

为什么不通过参数传递类实例?

class Foo{
    public static function fooMatic($classInstance){
        $classInstance->doStuff();
    }
}

然后你可以这样称呼它:

$newClassInstance = new importedClass();
$newClassInstance->init();
Foo::fooMatic($newClassInstance);