はじめに
こんにちは、野村です。
今回は、PHP7の無名関数とかfunctionのuseについておさらいしてみました。
以前この記事を書いたとき、わけもわからず使ったので
今回は、PHP7でいくつかの数列を書き出してみます。かつては一番親しんだ言語だったのだけど、数年触らなかったら随分進化してました。浦島太郎になった気分。
あらためて勉強してみようという魂胆です。
無名関数を即時実行
javascriptと似てます。
<?php
(function(){
echo "test\n";
})():
実行結果
test
スコープしない
javascriptのようにスコープするのか実験。
<?php
$a = "test";
(function(){
echo $a."\n";
})():
実行結果
PHP Notice: Undefined variable: a in /home/jake/mumei.php on line 4
やはりできなかった。
globalを使う
そういえばglobalっていうのがあったな。
<?php
$a = "test";
(function(){
global $a;
echo $a."\n";
})():
実行結果
test
成功した。当然だ。
useを使う
useとかいうのを使ってみる。
<?php
$a = "test";
(function()use($a){
echo $a."\n";
})():
実行結果
test
globalよりわかりやすい。
値渡し
そのままでは値渡しになる
<?php
$a = "test";
echo $a."\n";
(function()use($a){
$a .= "aaa";
echo $a."\n";
})():
echo $a."\n";
実行結果
test
testaaa
test
参照渡し
参照渡しにするときは「&」をつける。
<?php
$a = "test";
echo $a."\n";
(function()use(&$a){
$a .= "aaa";
echo $a."\n";
})():
echo $a."\n";
実行結果
test
testaaa
testaaa
おわりに
以上、PHP7の無名関数とかfunctionのuseについておさらいしてみました。
というわけで、今回はこれにて。