ホームページ > バックエンド開発 > PHPチュートリアル > この例外の理由を教えてください。

この例外の理由を教えてください。

WBOY
リリース: 2016-06-13 12:10:57
オリジナル
856 人が閲覧しました

このエラーの原因を教えてください
ローカルにインストールされた 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 />
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート