controllerからviewに変数を渡すときに使えるcompact関数を解説します。
ターゲット読者
compact関数について知りたい人
この記事でわかること
compact関数の使い方やメリット
controller?view?
本記事はcontrollerやviewを理解していることを前提としています。
この二つの他にmodelを加えたものをMVCモデルと呼ばれています。
MVCモデルを理解していない人は、まずこちらを読んで理解しておいてください。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TVZDJUUzJTgzJUEyJUUzJTgzJTg3JUUzJTgzJUFCJUUzJTgxJUFCJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz01YjEwZDEyZDRlNjMxYWZhMGZmMDgwMGQ1Nzc0YjJjZA&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzX2Vtb3RvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03ODUzNTA2MTAxZWI3ZGMwYzk1YWVlZTk4MjY4NGQ2MQ&blend-x=142&blend-y=486&blend-mode=normal&s=58d147862f2f740840ca144d74a8577e)
MVCモデルについて - Qiita
compact関数とは
変数名とその値から配列を作成する
![](https://www.php.net/images/meta-image.png)
PHP: compact - Manual
これだけだとよく分からないと思うので、具体的に説明します。
説明
以下のtest()関数は2つとも同じことをやっています。
public function test()
{
$test1 = 'test1';
$test2 = 'test2';
// viewの第2引数で配列を書いている。
return view('test', [
'test1' => $test1,
'test2' => $test2,
]);
}
public function test()
{
$test1 = 'test1';
$test2 = 'test2';
// compact関数だけで書いている。
return view('test', compact('test1', 'test2'));
}
つまり、viewの変数とcontrollerで定義した変数の名前が同じときに、compact関数を使って書くことができます。
比べると、2つ目の方がすっきり書けていることがわかると思います。