PHP では、[function foo($arg_1, $arg_2, /* ..., */ $arg_n){echo "Example function.\n";return $ の形式で定義できます。 retval;}] メソッド。
推奨: 「PHP ビデオ チュートリアル 」
ユーザー定義関数
関数は次の構文で定義できます。
例 #1 関数の目的を示す疑似コード
<?php function foo($arg_1, $arg_2, /* ..., */ $arg_n) { echo "Example function.\n"; return $retval; } ?>
有効な PHP コードはすべて Within に表示されます。関数だけでなく、他の関数やクラス定義も含まれます。
関数名には、PHP の他の識別子と同じ命名規則があります。有効な関数名は文字またはアンダースコアで始まり、その後に文字、数字、またはアンダースコアが続きます。正規表現 ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ で表現できます。
ヒント
「ユーザー空間の命名ガイドライン」を参照してください。
次の 2 つの例で関数が条件付きで定義されている場合を除き、関数を呼び出す前に関数を定義する必要はありません。
関数が条件付きで定義されている場合は、関数を呼び出す前に定義する必要があります。
例 #2 条件付き関数
<?php $makefoo = true; /* 不能在此处调用foo()函数, 因为它还不存在,但可以调用bar()函数。*/ bar(); if ($makefoo) { function foo() { echo "I don't exist until program execution reaches me.\n"; } } /* 现在可以安全调用函数 foo()了, 因为 $makefoo 值为真 */ if ($makefoo) foo(); function bar() { echo "I exist immediately upon program start.\n"; } ?>
例 #3 関数内の関数
<?php function foo() { function bar() { echo "I don't exist until foo() is called.\n"; } } /* 现在还不能调用bar()函数,因为它还不存在 */ foo(); /* 现在可以调用bar()函数了,因为foo()函数 的执行使得bar()函数变为已定义的函数 */ bar(); ?>
PHP のすべての関数とクラスはグローバル スコープを持ち、外部からの呼び出しで定義できます。機能とその逆。
PHP は関数のオーバーロードをサポートしていないため、宣言された関数の定義を解除したり再定義したりすることはできません。
注: A から Z までの ASCII 関数名では大文字と小文字が区別されませんが、関数を呼び出すときは、定義時と同じ形式を使用することをお勧めします。
PHP 関数は、可変数のパラメーターとデフォルトのパラメーターをサポートします。 func_num_args()、func_get_arg()、および func_get_args() を参照してください。
PHP では再帰関数を呼び出すことができます。
例 #4 再帰関数
<?php function recursion($a) { if ($a < 20) { echo "$a\n"; recursion($a + 1); } } ?>
注: ただし、スタックが崩壊して現在のスクリプトが終了する可能性があるため、100 ~ 200 レベルを超える再帰的な関数/メソッド呼び出しは避けてください。無限再帰はプログラミング エラーとみなされる可能性があります。
以上がPHPでメソッドをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。