質問: true; Validation::active()->set_message('include_1', '絞込 レディースブランド指定が正しくありません。'); return false; } } break; ``` `$arr_brd_8`の宣言箇所は ``` class Controller_Kobu extends Controller_Tmplcmn { static $arr_brd_1, $arr_brd_2, $arr_brd_3, $arr_brd_8, $arr_brd_9; static $arr_ib; ``` ### 試したこと `$arr_brd_8`らを、先に単にpublicとして、`$this->arr_brd_8`などとしてアクセスしていて、ローカルでは動作確認が取れました。 それをサーバーにアップロードしたら「Using $this when not in object context」っていうfatal errorになりました。 回避する方法を探して、static宣言にしたり、`self::$arr_brd_8`としてアクセスするように書き換えて、ローカルでは動作確認が取れましたが、サーバーでは「Cannot access self:: when no class scope is active」というfatal errorになりました。 ### 補足情報(言語/FW/ツール等のバージョンなど) FuelPHP v1.7.2 ローカルテスト環境:PHP 5.4.16 サーバー実行環境:PHP 5.3.15 現状の経緯をブログに書いております:[FuelPHPもPHP 5.4以降が必須なのかなぁ](http://m6u.hatenablog.com/entry/2016/06/21/121737 "FuelPHPもPHP 5.4以降が必須なのかなぁ")
回答: "該当のソースコード"は、無名関数の中に記述されていませんか? であれば、`self::`を`Controller_Kobu::`に変更してみてはいかがでしょうか? 私もイマイチ理解していないのですが、無名関数のスコープは、単純に親クラスのそれを引き継いでいるわけではないようです。