PHPの関数(function)に渡せる引数はスカラーだけではありません。配列をまとめて渡して、返り値も同様に配列で取り出せます。
関数内ではHTMLタグをはぎ取る動作をしてから再び$post_arrayに戻してやる作業をしています。戻した値はreturnで返します。
$re = test_array ($_POST);の$reの値はそのまま配列となって関数内で処理した値が戻ります。最後にforeachで洗い出してみます。意外に簡単にできました。
Perlのサブルーチンは@_というショートカットを用いて常に配列で処理しますが、PHPはその文脈によって正しく処理してくれるようです。そもそも変数の記号がスカラーも配列も$で同じなので逆にいうと文脈で判断しないとむちゃくちゃになってしまいます。
function test_array ($post_array) {例では関数test_arrayに$_POSTを渡しています。test_arrayでは$_POSTの情報を$post_arrayで受けています。$post_arrayは$_POSTと同じ情報をもっていますが、関数内ではローカル変数となってスコープが違います。
foreach ($post_array as $k => $v) {
$v = strip_tags($v);
}
return $post_array;
}
$re = array ();
$re = test_array ($_POST);
foreach ($re as $k => $v) {
print $k.'='.$v.'<br />';
}
関数内ではHTMLタグをはぎ取る動作をしてから再び$post_arrayに戻してやる作業をしています。戻した値はreturnで返します。
$re = test_array ($_POST);の$reの値はそのまま配列となって関数内で処理した値が戻ります。最後にforeachで洗い出してみます。意外に簡単にできました。
Perlのサブルーチンは@_というショートカットを用いて常に配列で処理しますが、PHPはその文脈によって正しく処理してくれるようです。そもそも変数の記号がスカラーも配列も$で同じなので逆にいうと文脈で判断しないとむちゃくちゃになってしまいます。


