識者の方がいれば教えていただきたいのと
ほかの言語ってどうだっけ、と思ったので書くのですが、
以下の結果ってどうなると思いますか?
.php
<?php
$a = 1;
$array_1 = [1,2,3,4,5];
foreach($array_1 as $val_1){
$b[] = $val_1;
}
echo($a);
var_dump($b);
$aがecho($a)で1を出力するのは当然ですが、
自分のイメージだと$bはforeachの中でしか有効でない
と思っていました。
もっと言うと、$bはforeachでループする度に無くなり
生成されを繰り返すのかと思っていました。
以下が結果です。
1array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}
$bには値が入っていますね。
foreachの外で$bを取得したいのであれば、
$bを使用したい階層より浅い場所で宣言してあげないと
いけないんじゃないか、と思っていましたが、、
そうではないみたいです。
私のイメージ
<?php
$a = 1;
$b = []; // <==私のイメージではこれが必須でした
$array_1 = [1,2,3,4,5];
foreach($array_1 as $val_1){
$b[] = $val_1;
}
echo($a);
var_dump($b);
ということは
.php
<?php
$a = true;
if($a){
$b = "bbb";
}
echo($b);
もできたりするんだろうな、と思いました。
まぁ、動くのはわかったのですが、こんなものなのでしょうか。。
わかる方がいれば教えていただきたいです。