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

PHP関数の引数


はじめに

PHPの関数は、引数の形式で環境/スクリプトの呼び出しからの入力を受け入れるように定義できます。これらの引数は、関数名の前の括弧内にコンマ区切りのリストとして示されています。関数を呼び出すときは、同じ数の引数を関数に渡す必要があることに注意してください。

PHPは、値、参照、デフォルト値の引数を渡し、可変数の引数を渡すことによる関数の呼び出しをサポートしています。

引数付き関数

次の例では、関数は2つの仮引数で定義されています。引数を値で渡すことによってこの関数が呼び出されたとき。関数の引数はそのローカル変数になります。したがって、関数内の引数の値の変更は、関数外には反映されません。

ここでは、$ xの値は関数内で変更されていますが、関数の呼び出し後にその値を確認すると、変更されていません

<?php
function add($x, $y){
   $x= $x+$y ;
   echo $x . "\n";
}
$x=10;
$y=20;
add($x,$y);
//outside function $x has previous value.
echo $x;
?>

出力

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

30
10

配列を関数に渡す

次の例では、配列を引数として受け取るようにadd()関数が定義されています。関数内では、配列要素はforeachループを使用してトラバースされます

<?php
function add($arr){
   $sum=0;
   foreach ($arr as $i){
      $sum+=$i;
   }
   echo "sum = " .$sum;
}
add(array(1,2,3));
?>

出力

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

sum = 6

参照による引数の受け渡し

値は、値によって関数の引数に渡されます。したがって、関数内の引数の値への変更は、関数外には反映されません。引数が参照によって渡されると、引数の値に変更が加えられます。

参照によって値を受け取るには、引数の名前の前に$記号を付ける必要があります

<?php
function swap(&$x, &$y){
   $t=$x;
   $x=$y;
   $y=$t;
   echo "inside function x=$x y=$y\n";
}
$x=5;
$y=7;
echo "before calling function x=$x y=$y\n";
swap($x, $y);
echo "after calling function x=$x y=$y\n";
?>

出力

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

before calling function x=5 y=7
inside function x=7 y=5
after calling function x=7 y=5

変数$xと$yの値は、swap()関数で交換されます。変数は参照によって渡されるため、変数は関数の外部でも変更された値を示します

型のヒント(型宣言)

実際、PHPは動的型付け言語です。したがって、(C / C ++やJavaのように)その型で変数を宣言する必要はありません。ただし、関数内の引数の型宣言により、パーサーは関数に渡された誤ったデータ型を検出できます。

構文

//define a function with type hints
function myfunction(type $arg1, type $arg2){
   ..
   ..
}
で関数を定義します

スカラー型、配列、クラス/インターフェイス、iterable、objectを含むすべての標準PHPデータ型は、関数宣言で型ヒントを提供するための有効な型です

<?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 (int $x, int $y){
   $z=$x+$y;
   echo "addition=$z\n";
}
add(10,20);
add(5.55, 6.66);
?>

出力

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

addition=30
addition=11

add()関数の2回目の呼び出しでは、floatが引数として指定されますが、それでもエラー/警告は表示されないことに注意してください。これは、PHPが加算を実行するために内部的にfloatを整数に強制するためです。このような自動型変換を防ぐには、宣言を使用します strict_types =1で構成します

<?php
declare(strict_types=1);
function add (int $x, int $y){
   $z=$x+$y;
   echo "addition=$z\n";
}
add(10,20);
add(5.55, 6.66);
?>

add()関数を2回呼び出すと、例外がスローされるようになりました-

出力

addition=30
PHP Fatal error: Uncaught TypeError: Argument 1 passed to add() must be of the type integer, float given

  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 パラメ