現在の言語: 日本語 |
...演算子(スプラット演算子)/引数アンパック |
コールバック関数 |
class test1
{
function test1(array &$ary, int &$num1, int $num2):void
{
for($i=0; $i < $num2; $i++)
{
$ary[] = ++$num1;
}
}
}
echo "<pre>";
$cls1= new test1();
$num1 = 0;
$num2 = 3;
$ary = [];
$params = [&$ary, &$num1, $num2];
$func = $cls1->test1(...);
$func(...$params);
echo "ary count:".count($ary)." num2:$num2".PHP_EOL;//ary count:3 num2:3
echo "</pre>";
class test1
{
function test1(array &$ary, int &$num1, int $num2):void
{
for($i=0; $i < $num2; $i++)
{
$ary[] = ++$num1;
}
}
}
echo "<pre>";
$cls1= new test1();
$num1 = 0;
$num2 = 3;
$ary = [];
$params = [&$ary, &$num1, $num2];
$func = $cls1->test1(...);
$func(...$params);
echo "ary count:".count($ary)." num2:$num2".PHP_EOL;//ary count:3 num2:3
echo "</pre>";
class test2
{
function test1(int &$result, string $txt1, string $txt2, int $num1, int $num2, int $num3):string
{
$result =$num1 + $num2 + $num3;
return $txt1 . $txt2;
}
function test2(int $num1, int $num2, int $num3, int &$result):void
{
$result = $num1 + $num2 + $num3;
}
}
echo "<pre>";
$cls2 = new test2();
$ary1=[];
$ary2=[];
$ary1[]="test1:";
$ary1[]="16";
$ary2[]=10;
$ary2[]=5;
$ary2[]=1;
$result =0;
$func1 = $cls2->test1(...);
echo $func1($result, ...$ary1, ...$ary2).PHP_EOL;//test1:16
echo "result:$result".PHP_EOL;//result:16
$ary3=[];
$ary4=[];
$ary3[]=1;
$ary3[]=2;
$result =0;
$ary4[] = 3;
$ary4[] = &$result;
$func2 = $cls2->test2(...);
echo "--------------------".PHP_EOL;
$func2(...$ary3, ...$ary4).PHP_EOL;
echo "result:".$ary4[1].PHP_EOL;
echo "</pre>";
class test2
{
function test1(int &$result, string $txt1, string $txt2, int $num1, int $num2, int $num3):string
{
$result =$num1 + $num2 + $num3;
return $txt1 . $txt2;
}
function test2(int $num1, int $num2, int $num3, int &$result):void
{
$result = $num1 + $num2 + $num3;
}
}
echo "<pre>";
$cls2 = new test2();
$ary1=[];
$ary2=[];
$ary1[]="test1:";
$ary1[]="16";
$ary2[]=10;
$ary2[]=5;
$ary2[]=1;
$result =0;
$func1 = $cls2->test1(...);
echo $func1($result, ...$ary1, ...$ary2).PHP_EOL;//test1:16
echo "result:$result".PHP_EOL;//result:16
$ary3=[];
$ary4=[];
$ary3[]=1;
$ary3[]=2;
$result =0;
$ary4[] = 3;
$ary4[] = &$result;
$func2 = $cls2->test2(...);
echo "--------------------".PHP_EOL;
$func2(...$ary3, ...$ary4).PHP_EOL;
echo "result:".$ary4[1].PHP_EOL;
echo "</pre>";
| 著作権情報 |
| ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |