Fatal error: Call to a member function **() on a non-object in ○○ on line △△

エラーメッセージFatal error

概要

 状態:-  閲覧数:46,986  投稿日:2010-04-27  更新日:2013-04-06  
○○ファイルの△△行目付近(以前)で、オブジェクトに関連付けられていないメンバー関数を呼び出したことによる、致命的エラー


エラーメッセージ


Fatal error: Call to a member function **() on a non-object in ○○ on line △△


エラーレベル


致命的エラー


原因


・オブジェクトに関連付けられていないメンバー関数の呼び出し
ファイルのパスと行番号
・○○ ファイル △△ 行目


遭遇例


1.インスタンス作成以前の、メンバー関数呼び出し
2.メンバー関数を呼び出す際のオブジェクト名が、作成したインスタンス名と異なる
3.「子クラスで明示的に呼び出していない親クラスコンストラクタ」内に記述された内容に関連するメソッドの呼び出し

遭遇例1.インスタンス作成以前の、メンバー関数呼び出し

 閲覧数:1,013 投稿日:2013-04-06 更新日:2013-04-06 

遭遇例


▽インスタンス作成以前に、メンバー関数を呼び出した

class CHARACTER{
function CHARACTER($stamina){//コンストラクタ
処理内容;
}
function get_stamina(){
処理内容;
}
}
$character->get_stamina();
$character = new CHARACTER(60);


対応例


▽インスタンス作成後、メンバー関数を実行

class CHARACTER{
function CHARACTER($stamina){//コンストラクタ
処理内容;
}
function get_stamina(){
処理内容;
}
}
$character = new CHARACTER(60);
$character->get_stamina();


遭遇例2.メンバー関数を呼び出す際のオブジェクト名が、作成したインスタンス名と異なる

 閲覧数:943 投稿日:2013-04-06 更新日:2013-04-06 

遭遇例


▽メンバー関数を呼び出す際のオブジェクト名が、作成したインスタンス名と異なる

class CHARACTER{
function CHARACTER($stamina){//コンストラクタ
処理内容;
}
function get_stamina(){
処理内容;
}
}
$character = new CHARACTER(60);
$characterman->get_stamina();


対応例


▽作成したインスタンス名で、メンバー関数を呼び出す

class CHARACTER{
function CHARACTER($stamina){//コンストラクタ
処理内容;
}
function get_stamina(){
処理内容;
}
}
$character = new CHARACTER(60);
$character->get_stamina();


遭遇例3.「子クラスで明示的に呼び出していない親クラスコンストラクタ」内に記述された内容に関連するメソッドの呼び出し

 閲覧数:938 投稿日:2013-04-06 更新日:2013-04-06 

遭遇例


・「子クラスで明示的に呼び出していない親クラスコンストラクタ」内に記述された内容に関連するメソッドの呼び出し

対応例


parent::__construct();//派生クラスのコンストラクタ内で、基底クラスのコンストラクタを実行


補足


・PHP仕様により、親クラスのコンストラクタは自動実行されない
・本来であれば子クラス側から明示的に呼び出す必要があるのだが、その記述が抜けていたため、親クラスコンストラクタに記述された処理内容は、実質的にないものと同じ状態になっていた
・その状態で、関連するメソッドを呼び出そうとしても、存在しないメンバー関数の呼び出しとなり、同エラー


Fatal error: Class '**' not found in ○○ on line △△

Fatal error: Class declarations may not be nested in ○○ on △△

コメント投稿(ログインが必要)



週間人気ページランキング / 11-8 → 11-14
順位 ページタイトル抜粋 アクセス数
1 PHPで定数を定義する方法は2種類ある / 配列定数の定義 4
2 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 3
2 PHP用語 3
2 T_CONSTANT_ENCAPSED_STRING | エラーメッセージ 3
2 curl で Cookie を使用する 3
3 ( ! ) Fatal error: Uncaught Abraham\TwitterOAuth\TwitterOAuthException: 現在この機能は一時的にご利用いただけません | Fatal error(エラーメッセージ) 2
3 register_shutdown_function | 関数処理 関数 2
3 セッション 2
3 SessionHandler::gc | セッション 2
3 セッション名 | セッション 2
3 http_build_queryとは? / 構文 /パラメータ 2
3 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
3 結合時の評価と優先順位 | 演算子 2
4 セッション単位 | セッション 1
4 エラー設定(エラーメッセージ) カテゴリー 1
4 エスケープ | セキュリティ 1
4 ob紛らわしい関数()一覧 | 出力バッファリング制御(関数) 1
4 Warning: include() [function.include]: Failed opening '**.php' for inclusion (in | Warning(エラーメッセージ) 1
4 ( ! ) Warning: Declaration of xxxx should be compatible with | エラーメッセージ 1
4 __setメソッド | マジックメソッド(クラスとオブジェクト) 1
2025/11/15 1:01 更新