[解決済み】 PHP 未定義関数の呼び出し
2022-02-03 09:59:11
質問
ある関数を別の関数から呼び出そうとしています。エラーが発生します。
Fatal error: Call to undefined function getInitialInformation()
in controller.php on line 24
controller.phpファイルです。
require_once("model/model.php");
function intake() {
$info = getInitialInformation($id); //line 24
}
モデル/model.php
function getInitialInformation($id) {
return $GLOBALS['em']->find('InitialInformation', $id);
}
すでに試したこと
- require_onceが動作し、指定された場所にファイルが存在することを確認しました。
- 関数がファイル内に存在することを確認しました。
私はこれを理解することができません。私はここで何かを見逃しているのでしょうか?
解決方法は?
これは開発者のミスで、終了波括弧の位置がずれていたため、上記の関数が ネストされた関数 .
SOの未定義関数エラーに関連する質問を多く見かけます。他の誰かが同じ問題を持っている場合に備えて、これを答えとして書き留めておこう。 関数スコープ .
最初にトラブルシュートしてみたこと
- 関数定義のあるphpファイルを検索しました。そのファイルが存在することを確認しました。
- を確認しました。 要求する (または 含む という文がページ内に存在します。また require/include は正しいです。
- require文のファイル名のスペルが正しいことを確認。
- インクルードファイルの単語をエコーし、正しくインクルードされているかどうかを確認。
- ファイル末尾に別の関数を定義し、それを呼び出す。これもうまくいった。
レガシーシステムの問題で、関数が非常に長かったため、中括弧をたどるのが困難でした。トラブルシューティングのためのさらなるステップは、このようなものでした。
- インクルードファイルの最後に、簡単なprint関数を定義しておきました。私はそれを"undefined function"のすぐ上に移動させました。それでこれも未定義になった。
-
何らかのスコープの問題であることを確認。
-
Netbeansのcollapse(コードの折りたたみ)機能を使って、この関数のすぐ上の関数をチェックしました。つまり、上の1000行の関数がこの関数と一緒に折りたたまれただけで、この関数はネストされた関数になっているのです。
-
問題を特定した後、その関数をファイルの最後にカットペーストすると、問題は解決しました。
関連
-
[解決済み】PHPからPythonスクリプトを実行する
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] "お知らせ 未定義変数"、"Notice: Notice: 未定義のインデックス", "Notice:未定義のインデックス", "Notice."。PHPを使用した「未定義のオフセット
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】空の配列要素を削除する
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】Netbeans 7.4 for PHPで「スーパーグローバルな$_POST配列に直接アクセスしないでください」という警告が発生する。
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み】In_arrayが動作しない。
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。