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

エラーメッセージFatal error

概要

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


エラーメッセージ


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


エラーレベル


致命的エラー


原因


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


遭遇例


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

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

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

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

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

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



週間人気ページランキング / 9-11 → 9-17
順位 ページタイトル抜粋 アクセス数
1 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 7
1 session_start() | セッション 7
2 「POSIX正規表現」と「PCRE正規表現」の違い 4
2 PHPで定数を定義する方法は2種類ある / 配列定数の定義 4
2 演算子 カテゴリー 4
2 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 4
3 定数 3
3 コード例 … 「例外処理」はネストすることができる 3
3 スコープ | 変数 3
3 ob紛らわしい関数()一覧 | 出力バッファリング制御(関数) 3
3 ブラウザを閉じたらセッションデータはどうなるの? | セッション 3
4 Warning: strlen() expects parameter 1 to be string, array given in ○○.php on line △△ | Warning(エラーメッセージ) 2
4 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
4 http_build_query | URLs(関数) 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
4 Trying to get property of non-object  | Notice(エラーメッセージ) 2
4 エスケープ | セキュリティ 2
4 curl で Cookie を使用する 2
4 Fatal error(エラーメッセージ) カテゴリー 2
2025/9/18 1:01 更新