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

参照による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

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

  2. 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