NanoAのtemplateでは条件演算子を使おう

未だにNanoAを使ってみたりしています。
Mojoliciousも面白いのですが、ファイルの操作(Mojo::Asset::File)に慣れないため、ついついPath::Classとか使ってしまうのですが、それだとMojoliciousを使っている意味が無いような気がして…。

閑話休題。
NanoAで使うテンプレートを書いていて、今更気づいたというか、見かけていたはずなのに理解できていなかったことがようやく理解できたので、恥を晒してみます。

2年以上前に失敗していた時は、普通にifブロックを使って対処したのです。

今のところ原因はわかりませんが、普通にifブロックを使う、ということで回避はできるので大きな問題はありません。
後置型のifとMENTAとjQueryFileTree、そしてPHP - 日曜プログラマのそゞろ事

しかし、今の私は条件演算子を使うことを覚えました。
つまり、

1
<title><? if ($title) { ?><?= "$title - " ?><? } ?>menta.nqou.net</title>

上記のような場合は、

1
<title><?= $title ne "" ? "$title - " : "" ?>menta.nqou.net</title>

このようにすれば良いのです。
後置のifを使った場合、評価が「偽」だった場合に表示されるべき値が不明瞭になります。(調べてみたのですが、よくわかりませんでした)
templateエンジン次第でしょうが、例えば「$_」の値が表示されるかもしれません。
なので、評価が「偽」だった場合でも、何を表示するかを明確にしてやれば、問題ないということですね。
…何を今更。

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。