「Call to a member function」と表示されるとき

クラスメソッドを実行して「Call to a member function」と表示されるときは、オブジェクト作成前に実行していたり、必要なオブジェクトインスタンスが生成されていないことが考えられます。

たとえば、次の例では、testメソッドを実行しています。

class Sample{
    function test() {echo "テスト";}
}

$obj = new Sample();
$obj->test();

これは問題ありません。

○実行結果

テスト

次に、Sampleクラスのオブジェクト($obj)を作る前にtestメソッドを実行してみます。

class Sample{
    function test() {echo "テスト";}
}

$obj->test();
$obj = new Sample();

実行結果は次のようになエラーメッセージが表示されます。

○実行結果

Fatal error: Call to a member function test() ...
「Notice: Undefined variable: obj…」というメッセージも表示される場合があります。

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク