参照によるPHPの受け渡し
はじめに
PHP では、 関数への引数は、値で渡すことも、参照で渡すこともできます。デフォルトでは、実際の引数の値は、関数内でローカル変数になる正式な引数に値で渡されます。したがって、これらの変数を変更しても、実際の引数変数の値は変更されません。
引数が参照で渡される場合、前者は後者への参照であるため、仮引数の値の変更は実際の引数変数に反映されます。したがって、参照渡しメカニズムは、グローバル空間のデータを間接的に操作するのに役立ちます。また、関数が返すことができる変数は1つだけであるという事実を克服するのにも役立ちます。
値渡し
次の例では、2つの変数がswap()関数に渡されます。スワッピングメカニズムは関数内で実行されますが、渡された変数の値は変更されません
例
<?php function swap($arg1, $arg2){ echo "inside function before swapping: arg1=$arg1 arg2=$arg2\n"; $temp=$arg1; $arg1=$arg2; $arg2=$temp; echo "inside function after swapping: arg1=$arg1 arg2=$arg2\n"; } $arg1=10; $arg2=20; echo "before calling function : arg1=$arg1 arg2=$arg2\n"; swap($arg1, $arg2); echo "after calling function : arg1=$arg1 arg2=$arg2\n"; ?>
出力
この例では、次の出力が得られます
before calling function : arg1=10 arg2=20 inside function before swapping: arg1=10 arg2=20 inside function after swapping: arg1=20 arg2=10 after calling function : arg1=10 arg2=20
参照渡し
参照によって引数を受け取るには、変数で使用される仮引数の前に&記号を付ける必要があります。関数の呼び出しに使用される変数を参照します。したがって、関数内でのスワップの結果は、渡された元の変数にも反映されます
例
<?php function swap(&$arg1, &$arg2){ echo "inside function before swapping: arg1=$arg1 arg2=$arg2\n"; $temp=$arg1; $arg1=$arg2; $arg2=$temp; echo "inside function after swapping: arg1=$arg1 arg2=$arg2\n"; } $arg1=10; $arg2=20; echo "before calling function : arg1=$arg1 arg2=$arg2\n"; swap($arg1, $arg2); echo "after calling function : arg1=$arg1 arg2=$arg2\n"; ?>
出力
交換の結果は次のように表示されます
before calling function : arg1=10 arg2=20 inside function before swapping: arg1=10 arg2=20 inside function after swapping: arg1=20 arg2=10 after calling function : arg1=20 arg2=10
次の例では、配列要素は、配列の初期化の前に宣言された個々の変数への参照です。要素が変更されると、変数の値も変更されます
例
<?php $a = 10; $b = 20; $c=30; $arr = array(&$a, &$b, &$c); for ($i=0; $i<3; $i++) $arr[$i]++; echo "$a $b $c"; ?>
出力
$ a、$ b、および$cの値も増分されます
11 21 31
配列を参照して関数に渡すことも可能です
例
<?php function arrfunction(&$arr){ for ($i=0;$i<5;$i++) $arr[$i]=$arr[$i]+10; } $arr=[1,2,3,4,5]; arrfunction($arr); foreach ($arr as $i) echo $i . " "; ?>
出力
変更されたアレイは次のように表示されます
11 12 13 14 15
オブジェクトと参照
PHPでは、オブジェクトはデフォルトで参照によって渡されます。オブジェクトの参照が作成されると、その参照も$ thisの形式で引数として送信されます。これは、最初のオブジェクトへの参照でもあります
例
<?php class test1{ private $name; function getname(){ return $this->name; } function setname($name){ $this->name=$name; } } $obj1=new test1(); $obj2=&$obj1; $obj1->setname("Amar"); echo "name: " .$obj2->getname(); ?>
出力
上記のコードは次の出力を表示します
name: Amar
-
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 パラメ
-
PHP log()関数
定義と使用法 ログ ()関数は、数値の自然対数を計算します。 対数は、対数の逆数です。 10 2の場合 =100、それはlog 10を意味します 100=2。自然対数はオイラー数eで計算されます ベースとして。 PHPでは、事前定義された定数 M_E 2.7182818284590452354であるeの値を与える たとえば、exp(4.60517018599)=100(e 4.60517018599 とも同じです) =100)。したがって、log e 100 =4.60517018599 PHPでは、 log e log()で表されます 関数 構文 log ( f