0

inside() という関数内でクラスを使用しようとしています。次のようなものがあります。

class MyClass{
  public function test(){ echo "test ok"; }
}    

$mc = new MyClass();

function inside(){
  global $mc;
  $mc->test();
}

しかし、これは機能しません:(私は得る:

致命的なエラー: の非オブジェクトに対するメンバー関数 test() の呼び出し ...

1 つの解決策は、クラス $mc を引数として関数 inside() に渡すことですが、別のものが必要です :/

何か案が ?

タイの人

4

3 に答える 3

0

クラス内にある関数にアクセスすることだけが必要な場合は、それを静的として定義できます

class MyClass {
  static function test() {
        echo "test ok";
    }
}

次に、グローバルを使用する必要はありません。

function inside() {
    MyClass::test();
}
于 2013-11-10T19:40:20.537 に答える
0

test を として定義する必要がありますpublic function test(){...

于 2013-11-10T19:28:58.400 に答える