PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPユーザー定義関数


はじめに

PHPには、数学、文字列、日付、配列関数などの多数の組み込み関数があります。特定の要件に従って関数を定義することもできます。このような関数はユーザー定義関数と呼ばれます。

関数は、特定のタスクを実行するステートメントの再利用可能なブロックです。このブロックはfunctionキーワードで定義され、アルファベットまたはアンダースコアで始まる名前が付けられます。この関数は、プログラム内のどこからでも何度でも呼び出すことができます。

構文

//define a function
function myfunction($arg1, $arg2, ... $argn)
{
   statement1;
   statement2;
   ..
   ..
   return $val;
}
//call function
$ret=myfunction($arg1, $arg2, ... $argn);

関数はオプションで定義できますが、任意の数の引数を使用できます。ただし、呼び出し中に同じ数の引数を指定する必要があります。関数の本体には、条件、ループなどの有効なPHPコードを含めることができます(他の関数やクラスも関数内で定義できます)。ブロック内のステートメントを実行した後、プログラム制御は、関数ブロックの最後のステートメントがreturnとして存在するかどうかに関係なく、呼び出された場所に戻ります。 returnステートメントの前にある式は、その値を呼び出し元の環境に返します。

ユーザー定義関数の例

次の例は、定義とusr定義関数sayhello()

の呼び出しを示しています。

<?php
//function definition
function sayHello(){
   echo "Hello World!";
}
//function call
sayHello();
?>

このスクリプトは、コマンドラインから実行すると次の結果を生成します-

出力

Hello World!

引数付き関数

次の例では、関数は2つの正式な引数で定義されています

<?php
function add($arg1, $arg2){
   echo $arg1+$arg2 . "\n";
}
add(10,20);
add("Hello", "World");
?>

出力

これにより、次の結果が得られます。 −

30
PHP Warning: A non-numeric value encountered in line 3

2番目の呼び出しでは、2つの文字列値が関数の引数として指定されます。 PHPは文字列の+演算子をサポートしていないため、警告が表示されます。

関数リターン

次の例のユーザー定義関数は、提供された引数を処理し、呼び出し元の環境に値を戻します

<?php
function add($arg1, $arg2){
   return $arg1+$arg2;
}
$val=add(10,20);
echo "addition:". $val. "\n";
$val=add("10","20");
echo "addition: $val";
?>

出力

これにより、次の結果が得られます。 −

addition:30
addition:30

2番目の呼び出しでは、引数が文字列であっても、PHPはそれらを整数に強制し、加算を実行します

デフォルトの引数値を持つ関数

関数を定義するときに、引数のデフォルト値を割り当てることができます。関数の呼び出し中にそのような引数に値が割り当てられていない場合、このデフォルトが関数内の処理に使用されます。次の例では、関数はデフォルト値を持つ引数で定義されています

<?php
function welcome($user="Guest"){
   echo "Hello $user\n";
}
//overrides default
welcome("admin");
//uses default
welcome();
?>
を使用します

出力

これにより、次の結果が得られます。 −

Hello admin
Hello Guest

2回目の呼び出しでは、値を渡さずに関数が呼び出されます。この場合、user引数はデフォルト値を取ります。

可変数の引数を持つ関数

可変数の引数を受け取る機能を備えた関数を定義することが可能です。関数定義の仮引数の名前には、接頭辞 ...が付いています。 トークン。次の例には、引数として指定された数値のリストを追加するadd()関数があります

<?php
function add(...$numbers){
   $ttl=0;
   foreach ($numbers as $num){
      $ttl=$ttl+$num;
   }
   return $ttl;
}
$total=add(10,15,20);
echo "total= $total\n";
echo "total=". add(1,2,3,4,5). "\n";
?>

出力

これにより、次の結果が得られます。 −

total= 45
total=15

func_get_args()を使用して、関数に渡される引数のリストを取得することもできます。 働き。 PHPループを実行して、渡された引数のリスト内の各値をトラバースできます。その場合、関数定義には仮引数がありません。

<?php
function add(){
   $numbers=func_get_args();
   $ttl=0;
   foreach ($numbers as $num){
      $ttl=$ttl+$num;
   }
   return $ttl;
}
$total=add(10,15,20);
echo "total= $total\n";
echo "total=". add(1,2,3,4,5). "\n";
?>

出力

これにより、次の結果が得られます。 −

total= 45
total=15

別の関数内の関数

関数は、別の関数の本体ブロック内で定義できます。ただし、外部関数が呼び出される前に内部関数を呼び出すことはできません。

<?php
function hello(){
   echo "Hello\n";
   function welcome(){
      echo "Welcome to TutorialsPoint\n";
   }
}
//welcome();
hello();
welcome();
?>

コメントを削除して、hello()の前にwlcome()を呼び出します。次のエラーメッセージはプログラムを停止します-

Fatal error: Uncaught Error: Call to undefined function welcome()

出力

行にコメントを付けて、もう一度実行します

Hello
Welcome to TutorialsPoint

再帰関数

自分自身を呼び出す関数は再帰関数と呼ばれます。自分自身を無条件に呼び出すと、無限ループが発生し、スタックがいっぱいになるためにメモリ不足エラーが発生します。次のプログラムはfactorial()関数を再帰的に呼び出します

<?php
function factorial($n){
   if ($n < 2) {
      return 1;
   } else {
      return ($n * factorial($n-1));
   }
}
echo "factorial(5) = ". factorial(5);
?>

出力

factorial(5) = 120

  1. PHP max()関数

    定義と使用法 最大 ()関数は、配列内の最高の要素、または2つ以上のコンマ区切りパラメーターの中で最高の要素を返します。 構文 max ( array $values ) : mixed または max ( mixed $value1 [, mixed $... ] ) : mixed パラメータ Sr.No パラメータと説明 1 値 パラメータが1つだけ指定されている場合は、同じタイプまたは異なるタイプの値の配列である必要があります。 2 value1、value2、.. 2つ以上のパラメーターが指定されている場合、それらは同じタイプまたは異

  2. PHP log10()関数

    定義と使用法 log10 ()関数は、数値の常用対数を計算します。 基数10の対数は、常用対数またはサンダードアルゴリズムとも呼ばれます。 log10(x)関数はlog 10を計算します バツ。これは、次の方程式によって自然対数に関連しています- log 10 x =log e x / log e 10だから log 10 100 =log e 100 / log e 10 =2 PHPでは、 log 10 log10()で表されます 関数 構文 log10 ( float $arg ) : float パラメータ Sr.No パラメ