phpのlistは関数ではなく、言語の構成要素です。
2008/01/26
php
PHPのlistが便利だったのでメモ。
単一の操作で一連の変数に代入できます。
これが便利!!
コード参考
list($no,$date,$num1,$num2,$num3,$num4,$num5,$num6,$numb,$prize1_cnt,$prize1,$pr
ize2_cnt,$prize2,$prize3_cnt,$prize3,$prize4_cnt,$prize4,$prize5_cnt,$prize5,$ca
rrry_over,$amount) = preg_split("/[\s]+/", $s, -1, PREG_SPLIT_NO_EMPTY);
ize2_cnt,$prize2,$prize3_cnt,$prize3,$prize4_cnt,$prize4,$prize5_cnt,$prize5,$ca
rrry_over,$amount) = preg_split("/[\s]+/", $s, -1, PREG_SPLIT_NO_EMPTY);
何をしているかといいますと、文字列をスペース、改行、タブなどで区切られていたら、配列にして、それをlistを使って、名前がついた変数に一気に代入しています。
これの何がうれしいかといいますと、次にこれからSQLを作成するときは、こんな感じでできたり。
$insert = "INSERT INTO loto6 VALUES($no,'$date',$num1,$num2,$num3,$num4,$num5,$n
um6,$numb,$prize1_cnt,$prize2_cnt,$prize3_cnt,$prize4_cnt,$prize5_cnt,$prize1,$p
rize2,$prize3,$prize4,$prize5,$amount,$carrry_over)";
um6,$numb,$prize1_cnt,$prize2_cnt,$prize3_cnt,$prize4_cnt,$prize5_cnt,$prize1,$p
rize2,$prize3,$prize4,$prize5,$amount,$carrry_over)";
変数の名前が、データベースのテーブルの列名と一緒だとわかりやすいですね。
listいいなぁ。
で、これはもちろん関数ではないんですよね。言語の表現力って感じですかね。
PHPのマニュアルに書いてありました。
array() と同様に、 この関数は実際には関数ではなく言語の構成要素です。 list() は、 単一の操作で一連の変数に値を代入するために使われます。PHP: list - Manual
Perlだと似たようなことが、もっといろいろできると思う。
参考
: