スポンサードリンク
CakePHPを使っていて
compact関数とextract関数というものを見つけました。
どんな関数かしらなかったので
調べてみました。
スポンサードリンク
変数名とその値から配列を作成するcompact関数
array compact ( mixed $varname1 [, mixed $… ] )
変数名とその値から配列を作成します。
変数名がキー、変数の値がそのキーに関する値となります。
$first_name = "太郎"; $last_name = "山田"; $address = "東京都"; $result = compact("first_name", "middle_name", "last_name", "address"); print_r($result);
(結果)
Array ( [first_name] => 太郎 [last_name] => 山田 [address] => 東京都 )
compactで指定するときは、変数名を指定します。
$を付けずに指定しなければいけないです。
キーを指定するイメージですね。
middle_nameは変数にないのでスキップされています。
compantの引数は配列でも指定できるようで
$first_name = "太郎"; $last_name = "山田"; $address = "東京都"; $key = array("first_name", "middle_name", "last_name", "address"); $result = compact($key); print_r($result);
(結果)
Array ( [first_name] => 太郎 [last_name] => 山田 [address] => 東京都 )
上記のように配列でキーを作って引数にいれても同じ結果になります。
配列から変数を作成するextract関数
extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )
配列から変数を作成します。
各キーについて変数名として有効であるかどうか、そして、シンボルテーブルの既存の変数と衝突しないかどうかを確認します。
$array = array("first_name" => "太郎", "last_name" => "山田", "address" => "東京都" ); $result = extract($array); print_r($result); echo "<br>"; echo $first_name; echo "<br>"; echo $last_name; echo "<br>"; echo $address;
(結果)
3
太郎
山田
東京都
$resultにはextractの結果でできた変数の数が入るみたいです。
関数を実行後に
配列のキーの名前で変数ができます。
(参考)
PHP関数「compact」と「extract」を試してみる
スポンサードリンク