ホームページ >バックエンド開発 >PHPチュートリアル >PHPのカスタム関数はどのようにして外部変数を参照するのでしょうか?
コメント ループのネストを作成するときに問題が発生しました:
警告: /home/yiliaova/domains/chaochaoblog.com/public_html/wp-content/主題/chaochao/ comments.php の foreach() に指定された引数が無効です。 49 行目
無効な引数、つまり使用できないパラメータが現れました。
この問題はどのようにして生じたのでしょうか? 戻って次のコードを探してください:
foreach ($comments as $comment) :
これで、$comments が 関数 の外側の 変数 であることがわかります。関数で使用されるだけです。一般的なプログラミングの考え方によれば、関数の外にある変数はグローバル変数とみなされます。グローバル変数であれば、関数内で呼び出しても問題ありません。
PHP には私たちの従来の考え方にいくつかの問題があるようです。それでは、PHP のグローバル変数とは何でしょうか?
1. グローバル定義を使用して外部に直接出力します:
global $mytext; $mytext=”nihao”; function chao_echo(){ echo $mytext; } chao_echo();
結果: 出力なし。
2. GLOBALS 配列を使用して出力します:
結果: 関数を宣言します。関数内でグローバルに 外部変数:
global $mytext; $mytext=”nihao”; function chao_echo(){ echo $GLOBALS['mytext']; } chao_echo();
結果: 直接出力、または GLOBALS グローバル配列を使用した出力。
4. 関数の外部変数をパラメータに渡します:
$mytext=”nihao”; function chao_echo(){ global $mytext; echo $mytext; echo $GLOBALS['mytext']; } chao_echo();
変数を参照するには、次の 3 つの方法があります:
1. 関数の外部でのグローバル宣言、および関数の内部で $_GLOBALS 配列参照を使用します。 2. 関数内のグローバル宣言、関数内の $_GLOBALS 配列、または直接参照。
3. 関数を呼び出すときにパラメータを渡します。
次に、ループの入れ子関数の修正バージョンは次のとおりです$mytext=”nihao”; function chao_echo($mytext){ echo $mytext; } chao_echo($mytext);$chao_id は親コメントの ID です。つまり、最初に返信ではないコメントを出力し、最後に返信出力関数を呼び出す必要があります。それの終わり。
以上がPHPのカスタム関数はどのようにして外部変数を参照するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。