不明。。。
症状
Stateパターンで二つの状態にSmartyのオブジェクトを持たせてassignやdisplayの設定をしたところ、Smarty関数を呼びだすところでエラーになった。。。
しばらくデバッグしてみたけど、いまいちわからなかった。。。
対策
そこで、Smartyを継承させたSingletonパターンのMySmartyクラスを作成し、
assignの設定時に、オブジェクトを呼びだした。
すると、エラーはなくなり正常に表示されるようになった。
状態が違うオブジェクトにそれぞれ異なるSmartyオブジェクトをもたせたのがいけなかったのかな。
でも、SingletonにしたSmartyのオブジェクトを2つに持たせたらやっぱりダメだった。。
何が原因なんだ。。2つにSmartyオブジェクトを持たせるとあまりよろしくないのかな。