Smarty outputfilter 文字化け
Smartyを自作クラスに組み込む過程のメモ
- MyKlass::getKlass()でFoo(Smartyにあたる)をnewして$obj->registerでアウトプットフィルター相当を登録する。$obj->call()で呼び出し。(実際には$smarty->display()メソッドに組み込まれているので意識する必要はない)
- PHPのスコープいまいち分からん。call_user_funcとかって邪道なのかな?
- 関連記事
<?php class Foo{ var $filter = array(); function register($function_name){ $this->filter['callback'] = $function_name; } function call(){ foreach($this->filter as $func){ call_user_func($func, 'TEST'); } } } class MyKlass{ function getKlass(){ function myfunc($arg1){ print $arg1."myfuncdayo<br>"; } return new Foo; } } $obj = MyKlass::getKlass(); $obj->register('myfunc'); $obj->call(); print "<pre>"; print_r($obj); ?>