【问题标题】:PHP Call a class from within a static functionPHP 从静态函数中调用一个类
【发布时间】:2016-06-06 17:35:54
【问题描述】:

我需要使用一个 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

【问题讨论】:

  • 请显示确切的错误信息
  • 只有一个真正有效...

标签: php class static


【解决方案1】:

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

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

那么你可以这样称呼它:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多