このエラーの原因を教えてください
ローカルにインストールされた ECSHOP Web サイトがこのエラーをオンラインで報告しました。 厳格な標準: lib_main.php の 2661 行目で変数のみが参照によって渡される必要があります。 ローカルの PHP は 5.2
このファイルの 2661 行目は次のようになります $ext = end(explode('.', $tmp));
$tmp =basename($tmp,".$ext"); 原因は何でしょうか。 ?
-----解決策のアイデア----------------------
厳密標準: 変数のみが参照によって渡される必要があります
厳格な標準: ここでは変数のみを使用できます
$ext = end(explode('.', $tmp));
は
$ として記述する必要がありますt = $ext =explode('.', $tmp);
$ext = end($t);
これは php 5.4 以降でのみ使用できるエラー チェックです
実際には、php はすでに提供していますもっと簡単な関数
$ext = pathinfo($tmp, PATHINFO_EXTENSION);
------解決策のアイデア------ - --
end には参照型パラメータが必要で、参照型は次のように左辺値である必要があります
mixed end (array &$array)
関数explodeは右辺値を返します。これは
-----解決案----------------------混合エンド(array &$array )
end 内部パラメータは参照型です。
explode が返す結果は変数ではないため、エラーが発生します。
実際には、変更するだけです。
<br />$ext = substr($tmp, strrpos($tmp,'.')+1);<br />
<br />$ext = explode('.', $tmp);<br />$ext = array_pop($ext);<br />echo $ext;<br />