getterメソッドにデフォルト値

Definitive Guideを読み直し中

今まで気づいてなくて便利そうな機能をメモっていきます。

http://symfony.xrea.jp/1.0/book/02-Exploring-Symfony-s-Code.html#chapter.2.exploring.symfonys.code

パラメータホルダーのgetterはデフォルトの値を2番目の引数として受け取ります。これは条件文で可能なことよりも遙かに簡潔で便利なフォールバックメカニズム(訳注:障害が起きても最低限の機能を維持するメカニズム)を提供します。リスト2-17で例をご覧ください。

リスト2-17 - 属性ホルダーのgetterのデフォルト値を使う

// 'foobar' パラメータは定義されていないので、getterは空の値を返す
echo $response->getParameter('foobar');
=> null

// デフォルトの値はgetterを条件文に設置することで利用可能
if ($response->hasParameter('foobar'))
{
echo $response->getParameter('foobar');
}
else
{
echo 'default';
}
=> default

// しかしそれに対して2番目のgetterの引数を使う方が遙かに速い
echo $response->getParameter('foobar', 'default');
=> default