PHP の関数は呼び出す前に定義する必要はありません。
PHP のすべての関数とクラスにはグローバル スコープがあり、関数内で定義して外部から呼び出すことができます。また、その逆も可能です。関数のオーバーロードをサポートし、宣言された関数を定義解除または再定義することは不可能です。
PHP では再帰関数を呼び出すことができます。ただし、100 ~ 200 レベルを超える再帰的な関数/メソッド呼び出しは避けてください。スタックが崩壊して現在のスクリプトが終了する可能性があります。
関数定義:
function関数名([パラメータリスト]){
関数本体
}
PHPはデフォルトで値渡しを使用しますが、渡すこともできます値による参照渡し (このメソッドは関数本体で渡されたパラメーター値を変更できます)
例:
function fun(&$var){
$var++;
}
$var = 0;
fun($var);
echo $var;
output 1;
PHP はデフォルトのパラメーター値をサポートしています。
例:
function fun($var1,$var2=2,$var3=3){
return $var1+$var2+$var3;}
echo fun(1 ) ;
echo fun(1,1);echo fun(1,1,2);
は、それぞれ6 5 4を出力します
注: デフォルトのパラメータはすべて、デフォルトのパラメータの右側に配置する必要がありますデフォルト以外のパラメータ側; それ以外の場合、関数は期待どおりに動作しません。
上記の関数を次のように変更すると:
function fun($var2=2,$var3=3,$var1){
return $var1+$var2+$var3;}echo fun( 1 );
echo fun(1,1);echo fun(1,1,2);
3 番目の呼び出しメソッドは正常に実行できますが、最初の 2 つは問題を引き起こします。
PHP は可変数のパラメーター リストをサポートしています。
PHP5.6より前では、パラメータ情報を取得するには、func_num_args()を使用してパラメータの数を取得し、func_get_arg(i)を使用してi番目のパラメータの値を取得する必要があります
たとえば、 :
function fun( ){
$len = func_num_args();
$res = 0;
for($i = 0; $i<$len; $i++){
$res += func_get_arg($ i);
}
return $res;}
PHP5.6で導入された...$argsメソッド
例えば:
function fun(. ..$args){
$res = 0;
foreach ($args as $val){
$res += $val;
}
return $res;
}
どちらの方法でも結果は同じです。
PHPにおける変数関数の概念
つまり、変数名の後に括弧がある場合、PHPは変数の値と同じ名前の関数を探し、それを実行しようとします。変数関数は、コールバック関数や関数テーブルなどのいくつかの目的を実装するために使用できます。
例:
function fun(){
echo "Hello";}$var = "fun";
$var();// fun() 関数が呼び出されます
PHP の匿名関数
匿名関数は、クロージャー関数 (closures) とも呼ばれ、指定された名前なしで関数を一時的に作成できます。コールバック関数の引数として最も一般的に使用される値。
次のように、代入を通じて匿名関数の関数名を指定することもできます。
$fun = function (){
echo "HelloWorld";};$fun();
上記では php(4) 関数をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。