錫さんの雑多メモ

デザインとかプログラミングとかデッサンとかを、のんびりお勉強しているにゃんこのブログ。

Smartyコンパイル結果が「null」になった時に疑うべきこと

HTML構造は問題ないはずなのに、Smartyコンパイル結果が「null」になる(厳密には、真っ白画面に文字列「null」のみ表示される)事象と遭遇したことはありますか?
私はあります。ええ、つい先日。


この事象ですが、「"文字化けを含む値"をSmarty変数にセットしたこと」が原因でした。
具体的には、たとえば「"下記配列の特定の値"をSmarty変数にセットしたい場面」において、「"$arrAnimalに存在しない値($arrAnimal['rabbit']とか)"を誤ってSmarty変数にセットすること」で発生します。

<?php
        $arrAnimal = array(
                'dog'    =>    'ポチ',
                'cat'      =>    'たま'
        );
?>


配列の規模が大きくなるほど、こういうキー指定ミスが起こる可能性は高くなるので、将来の再遭遇に備えて、この覚書を残しておきます。