0

古いプログラム(2年以上前に作成されたもの)を実行するためにxamppをインストールしたところ、理解できない3つのエラーが発生しました。

  1. 厳格な基準: 117 行目の C:\xampp\htdocs\2010\web\core\route\route.php では、参照によって変数のみを渡す必要があります。
    public function loadClass($address,$ext='') {
        $this->extname = preg_replace('/_/','/',$address,3);
line:117>       $this->classname = end(explode('_',$address)).($e= $ext!='' ? '('.$ext.')' :  '');
        include_once(ROOT_ROUTE.'/'.$this->extname.'.php');
        $this->newclass = new $this->classname;
        return $this->newclass;
    }

117 行目がわかりません。参照渡しを使用していません。なぜエラーが発生するのですか?

4

1 に答える 1

4

end()は参照によって渡される引数を想定しているため、別の関数呼び出しまたは構造の直接の結果などの非変数で使用することはできません。

マニュアルの引数定義からの引用:

つまり、参照によって渡されるのは実際の変数のみであるため、配列を返す関数ではなく、実際の変数を渡す必要があります。

変化する

$this->classname = end(explode('_',$address)).($e= $ext!='' ? '('.$ext.')' :  '');

$addressTemp = explode('_',$address);
$this->classname = end($addressTemp) . ($e= $ext!='' ? '('.$ext.')' :  '');
于 2013-01-24T08:55:47.430 に答える