ローカルにインストールされた ecshop Web サイトは、インターネットにアップロードされるとこのエラーを報告します。 厳格な基準: lib_main.php の 2661 行目では変数のみが参照によって渡される必要があります。 ローカルの php は 5.2 です。
このファイルの 2661 行目は次のようになります。 ext = end(explode ('.', $tmp));
$tmp =basename($tmp,".$ext"); 理由は何でしょうか? ( solution)
厳密な標準: 参照によって渡されるのは変数のみです
厳密な標準: ここには変数のみが含まれます
$ext = end(explode('.', $tmp)); $t = $ext =explode; ('.' , $tmp); $ext = pathinfo($tmp , PATHINFO_EXTENSION);
以下のように、end に必要なパラメータは参照型であり、参照型は左辺値でなければなりません
混合 end ( array &$array )
関数explodeは右辺値を返しますが、これは変数として使用できません。 Reference
mixed end ( array & $array )
end 内部パラメータは参照型です。
実は、それを変えるだけです。
$ext = substr($tmp, strrpos($tmp,'.')+1);
または
$ext = explode('.', $tmp);$ext = array_pop($ext);echo $ext;
echo phpversion() , PHP_EOL; //打印出 php 把本号$tmp = 'aaa.ext';$ext = @end(explode('.', $tmp)); //屏蔽掉错误信息echo $ext; //输出 ext