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

エラーメッセージFatal error

概要

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


エラーメッセージ


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


エラーレベル


致命的エラー


原因


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


遭遇例


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

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

 閲覧数:982 投稿日: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.メンバー関数を呼び出す際のオブジェクト名が、作成したインスタンス名と異なる

 閲覧数:917 投稿日: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.「子クラスで明示的に呼び出していない親クラスコンストラクタ」内に記述された内容に関連するメソッドの呼び出し

 閲覧数:907 投稿日: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 △△

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



週間人気ページランキング / 8-21 → 8-27
順位 ページタイトル抜粋 アクセス数
1 PHPで定数を定義する方法は2種類ある / 配列定数の定義 6
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 4
2 対応例1.メモリ不足なので、PHPの最大使用メモリを増加するよう変更 4
3 http_build_queryとは? / 構文 /パラメータ 3
3 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 3
3 定数 3
4 session.hash_function | セッション 2
4 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 2
4 「include_once」で「An error occurred.」と表示される場合の原因は、大きく分けると 2 種類あります。 | エラーメッセージ 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 2
4 dirname() / (__FILE__ ) / basename( dirname( __FILE__ ) ); | 関数 2
4 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 2
5 spliceImageメソッド | Imagickクラス 1
5 エラー | 例外処理(制御構造) 1
5 Parse error: syntax error, unexpected T_REQUIRE_ONCE, expecting T_FUNCTION | Parse error(エラーメッセージ) 1
5 リファレンスを返す | リファレンス 1
5 セッション・ハイジャック | セキュリティ 1
5 エラーメッセージ / エラー原因 / エラー対応 1
5 Composer | 依存関係マネージャ 1
2025/8/28 1:01 更新