compact関数について、まとめます。
compact関数とは
compact関数とはPHPに予め備わっている関数で変数名とその値から配列を作成する。
各引数は、compact() は現在のシンボルテーブルにおいてその名前の変数を探し、 変数名がキー、変数の値がそのキーの値となるように追加します。 PHPマニュアルより
compact関数の使い方
実際にコードを書いて見てみましょう。
まずはcompact関数を使わずに配列を作成してみます。
//compact関数を使わない場合
$user = [ 'name'=>'hoge',
'email'=>'fuga@fuga.com',
'adress'=>'hoge town'
];
続いてcompact関数を使用して配列を作成します。
//compact関数を使う場合
//変数を定義
$name = 'hoge',
$email = 'fuga@fuga.com',
$adress = 'hoge town'
//compact関数で配列を作成
$user = compact('name', 'email', 'adress');
= [
"name" => "hoge",
"email" => "fuga@fuga.com",
"adress" => "hoge town",
]
//print_r関数で変数の情報を出力
print_r($user);
Array
(
[name] => 'hoge'
[email] => 'fuga@fuga.com'
[adress] => 'hoge town'
)
= true
このようにcompact関数は変数名と値から配列を作成してくれます。
注意すべき点はcompact関数の引数を書くときは、変数名の$を書かずに ’ ’ で囲んで指定することです。
//先ほどの場合
$name = 'hoge',
$email = 'fuga@fuga.com',
$adress = 'hoge town'
$user = compact('name', 'email', 'adress'); //$を抜き''で囲う
compact関数を使うメリット
なぜわざわざcompact関数を使うのかというとcompact関数を使うとタイプミスを減らすことができます。
例えば先ほど書いたコードを見てみましょう。
//compact関数を使わない場合
$user = [ 'name'=>'hoge',
'email'=>'fuga@fuga.com',
'adress'=>'hoge town'
];
上のように書くと配列のキーとして’name’、’email’、’adress’を配列のキーとして毎回書くことになります。
//compact関数を使う場合
//変数を定義
$name = 'hoge',
$email = 'fuga@fuga.com',
$adress = 'hoge town'
//compact関数で配列を作成
$user = compact('name', 'email', 'adress');
compact関数を使う場合は変数名と配列のキーが同じになります。
もしタイプミスをしたとしてもデバッグ 時に値を取得できないためタイプミスに気づくことができます。
Laravelでの使用例
Laravelではcompact関数はよく使われる関数になります。
Laravelではコントローラーからビューに値を渡すときに使用されます。
public function index()
{
$tasks = Task::all();
return view('tasks.index', compact('tasks')); //compact関数を使用
}
この場合は$tasksに格納された値をcompact関数で配列に置き換えてビューファイルに渡しています。
このコードをcompact関数を使わずに書くと以下のようになります。
return view('tasks.index', ['tasks' => $tasks]); //compact関数を使用しない
まとめ
- compact関数は配列を作成する関数。
- compact関数を使用することにより、ミスが少ないコードを書くことができる。
- Laravelでもコントローラーからビューに値を渡すときに使用される。
参考:
PHPで知っておきたい!compactの使い方とテクニック
ということを思っていませんか? 今回は、配列を作るときに便利な関数、compactの使い方とテクニックについて ...
コメント