現在の言語: 日本語 |
無名関数(匿名関数) |
コールバック関数 |
class test1
{
function test1()
{
//値渡し
$func1 =function (int $num):int
{
$num++;
return $num;
};
echo $func1(2).PHP_EOL;//3
$num1 = 10;
echo $func1($num1).PHP_EOL;//11
//参照渡しを使用したケース
$func2 =function (int &$num):int
{
$num++;
return $num;
};
echo $func2($num1).PHP_EOL;//11
echo "num1:$num1".PHP_EOL;//11
//引数が複数あるケース
$func3 =function (int $num1, int &$num2):int
{
$num2++;
$num1 += $num2;
return $num1;
};
$num1 = 10;
$num2 = 20;
echo $func3($num1, $num2).PHP_EOL;//31
echo "num2:$num2".PHP_EOL;//21
//引数がないケース
$func4 =function ()
{
return 100;
};
echo $func4().PHP_EOL;//100
}
function test2()
{
$tmp1 = 10;
//use(外部変数)を使用するケース
//外部変数を値渡し
$func1 = function (int $num1, int $num2) use ($tmp1):int
{
return $num1 + $num2 + $tmp1;
};
$num1 = 1;
$num2 = 2;
echo $func1($num1, $num2).PHP_EOL;//13
//use(外部変数)を参照渡しにしたケース
//use(外部変数)には型宣言はできません
$func2 = function (int $num1, int $num2) use (&$tmp1):int
{
$tmp1 *= 2;
return $num1 + $num2 + $tmp1;
};
echo $func2($num1, $num2).PHP_EOL;//23
echo "tmp1:$tmp1".PHP_EOL;//20
}
//voidのケース
function test3()
{
$tmp1 = 10;
//use(外部変数)を使用するケース
//外部変数を参照渡し
$num1 = 1;
$num2 = 2;
$func1 = function (int $num1, int $num2) use (&$tmp1):void
{
$tmp1 *= 2;
$num1 += $num2 + $tmp1;
return;
};
echo "func1:".$func1($num1, $num2).PHP_EOL;//func1:
echo "tmp1:$tmp1".PHP_EOL;//20
}
}
echo "<pre>";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
$cls1->test3();
echo "</pre>";
| 著作権情報 |
| ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |