2010年10月31日
Ktai Style2.0.3でのエラー
WordPressのケータイ用Pluginである「Ktai Style2.0.3」を導入して、ケータイから見たら以下のようなエラーが出ました。
環境はPHP5.3.3, wordpress3.0.1です。
Fatal error: Access to undeclared static property: KtaiService_imode::$pictograms in /var/www/html/wp-content/plugins/ktai-style/operators/i-mode.php on line 61
どうやらi-mode.phpの$pictogramsっていうインスタンスを変数をスタティックなクラス変数として読んでいるからエラーになっているみたい。
ということでソースコードのぞいてみると、こう書いてありました。
class KtaiService_imode extends KtaiServices {
static public $networks;
static public $pictograms;
...
一見staticで定義されてるじゃんとか思ったけど、よーくみたら「static public」になってるじゃん・・・(゚A゚;)
しかも継承元のKtaiServicesクラスでは、protectedで定義されている。。。
ということで以下のように修正します。
class KtaiService_imode extends KtaiServices {
protected static $networks;
protected static $pictograms;
...
さらに各キャリアのファイル同じようにstatic publicと書かれているところをprotected staticと修正しなきゃだめぽいです。
つーかstatic publicって宣言してしまうと、エラーにならずにインスタンス変数になってしまうんですね。。
PHPの怖さをまた一つ学びました。
ということでこのブログをケータイからみれるようになりました。