Twigでの文字列連結と “.” で参照

Twigでの文字列連結と “.” で参照

Twigでの文字列連結と "." で参照

TwigはPHP向けのテンプレートエンジンです。

最近PHP、Twigを使うことがあり、文字列の連結と連想配列やプロパティ、関数の参照方法について戸惑うことがあったのでメモしておきます。

Twig で文字列連結をする方法

TwigでPHPのように文字列を連結して出力しようとするとエラーになりました。具体的には以下のような感じです。

{% set str1 = 'str1' %}
{% set str2 = 'str2' %}
{{ str1.str2 }}

2つの変数を連結して1つの文字列にして出力するという意図です。これは次のようなエラーになりました。

Twig_Error_Runtime in Template.php line 556: Impossible to access an attribute ("str2") on a string variable ("str1") in ...

Twigでは文字列の連結に ~ を使う

Twigでは文字列の連結に ~ を使います。PHPと同じように . を使うとエラーになります。Twig の世界で . はプロパティや関数、連想配列の参照に使われます。

よって、正しくは次のようにして文字列を連結します。

{% set str1 = 'str1' %}
{% set str2 = 'str2' %}
{{ str1~str2 }}

Twigで連想配列をキー値で参照する

ドット "." は文字列連結ではなく、参照に使われます。オブジェクトの関数やプロパティ、連想配列の指定の値の参照が可能です。以下は連想配列を定義し、値を取り出しています。

{% set dict = {'xxx': 100, 'yyy': 200} %}
{{ dict.xxx }}

phpの -> に最初戸惑いましたが、こちらもなかなかなれません。

以上。

PHPカテゴリの最新記事