0

私はこの機能を持っています:

<?PHP
function T($w) {
    $method = $GLOBALS['G_SP']["lang"][spController::getLang()]; // LINE 2
    if(!isset($method) || 'default' == $method){
        return $w;
    }elseif( function_exists($method) ){
        return ( $tmp = call_user_func($method, $w) ) ? $tmp : $w;
    }elseif( is_array($method) ){
        return ( $tmp = spClass($method[0])->{$method[1]}($w) ) ? $tmp : $w;
    }elseif( file_exists($method) ){
        $dict = require($method);
        return isset($dict[$w]) ? $dict[$w] : $w;
    }else{
        return $w;
    }
}
?>

いいえ、2 行目に次のエラーが表示されます。

厳格な基準: 非静的メソッド spController::getLang() は、2 行目の C:\xampp\htdocs\inc\spFunctions.php で静的に呼び出されるべきではありません

このエラーを修正するには?

:php.iniを変更せずにこれを修正する必要があります(error_reporting = E_ALL | E_STRICT OR display_errors = OnからOffを無効にします)

4

2 に答える 2

2

spController::getLang()関数が ( を使用して) インスタンス プロパティを参照していない場合は、関数宣言$thisに追加するだけです。staticすなわち

public static function getLang();

への参照を使用して$thisいる場合は、 のインスタンスを作成してから、そのメソッドをインスタンス メソッドとしてpController呼び出す必要があります。getLang()

$controller = new spController();
$lang = $controller->getLang();
于 2013-07-20T13:28:58.563 に答える
0
$sp = new spController();
$sp->getLang();

または、アプリケーションのどこかに のインスタンスがspController既に存在している可能性があります

于 2013-07-20T13:26:21.607 に答える