関数をコールするときにゴリゴリ変数を使ってを記述しているのを見て、ふとこの変数のスコープはなんだろうと思ったので確かめてみました。
<?php
function test($args1, $args2) {
echo '第1引数の値は:' . $args1;
echo '第2引数の値は:' . $args2;
}
test($max = 255, '最大文字数は' . $max . 'です。');
echo '関数の後の$maxは:' . $max;
実行結果
第1引数の値は:255
第2引数の値は:最大文字数は255です。
関数の後の$maxは:255
実行結果:3v4l
実行結果を見るとわかりますが、関数コール後も $max
の値が存在します。
今回は名前空間を指定していないので、$max
はグローバルスコープです。
スコープの扱いは下記と同じですね。
<?php
function test($args1, $args2) {
echo '第1引数の値は:' . $args1;
echo '第2引数の値は:' . $args2;
}
$max = 255;
$str = '最大文字数は' . $max . 'です。';
test($max, $str);
echo '関数の後の$maxは:' . $max;
確かめてみて、「よく考えたらそうだよね」という感想です。