ホームページ  >  記事  >  毎日のプログラミング  >  PHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)

PHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)

藏色散人
藏色散人オリジナル
2018-09-17 17:30:164102ブラウズ

PHP を初めて使用する人にとって、PHP 関数のネストに関する知識を学ぶのは難しいかもしれません。たとえば、友人が PHP 関数のネストに関連する問題を練習しているとき、内部関数を呼び出すときにエラーが発生します。

この記事では、PHP における特殊関数と入れ子関数の処理について詳しく分析し、紹介します

以下、具体的なコード例を通して詳しく説明します。

最初に、PHP ネスト関数コードを作成します。例は次のとおりです。

<?php
function functionName1()
{ 
        function functionName2(){
            echo "我是一个被嵌套的函数";
        }   
    echo "我是一个函数";
}
functionName2();

このコードにブラウザーを通じてアクセスしてテストした結果は、次のようになります。

PHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)

図に示すように、functionName2 関数が定義されていないというエラー メッセージが表示されます。

上記のコードに基づいて、 functionName1 関数を呼び出します。コードは次のとおりです。

<?php
function functionName1()
{ 
        function functionName2(){
            echo "我是一个被嵌套的函数";
        }   
    echo "我是一个函数";
}
functionName1();
functionName2();

次に、ブラウザーのテストに合格すると、結果は次のようになります。

PHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)

この時点で、内部関数 functionName2 は正常に呼び出すことができます。

それでは、ページ上で外部関数 を複数回呼び出すとどうなるでしょうか?

上記のコードに基づいて、 functionName1 関数を 2 回呼び出します。コードは次のとおりです。

<?php
function functionName1()
{ 
        function functionName2(){
            echo "我是一个被嵌套的函数";
        }   
    echo "我是一个函数";
}
functionName1();
functionName1();
echo "<br>";
functionName2();

ブラウザからアクセスした場合のテスト結果は次のとおりです。

PHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)

図に示すように、functionName2 関数を再定義できないというエラー メッセージが表示されます。このようなエラーを解決および回避するにはどうすればよいですか?

ここでは if 判定ステートメントを使用する必要があります。完全なコード例は次のとおりです。

<?php
// 当外部的函数没有被调用时,内部的函数相当于不存在
function functionName1()
{
    if (!function_exists(&#39;functionName2&#39;)){
        function functionName2(){
            echo "我是一个被嵌套的函数";
        }
    }
    echo "我是一个函数";
}
functionName1();
functionName1();
echo "<br>";
functionName2();

最後に、ブラウザを通じてアクセスするテスト結果は次のとおりです。

PHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)

要約すると、いくつかの重要な結論を導き出すことができます:

1. 外部関数が呼び出されない場合、内部関数は存在しないことと同じです。それ以外の場合、直接呼び出すと上記関数が定義されていませんというエラーが発生します。

2. 複数の外部関数を呼び出す場合は、判定ステートメントを使用して入れ子関数を宣言する必要があります。そうしないと、再定義できないエラーが発生します。

Note: function_exists() は、指定された関数が定義されているかどうかを判断できます。

PHP についてさらに詳しく知りたい場合は、PHP 中国語 Web サイト

PHP ビデオ チュートリアル を参照してください。ぜひ参考にして勉強してください!

以上がPHP で入れ子関数が呼び出されたときのエラー報告の問題を解決するにはどうすればよいですか? (写真 + ビデオ)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。