6

curPageURL という配列を返す関数があります。私のローカル Apache では、次のように Page の戻り値にアクセスしました$pageUrl = explode('?',curPageURL())[0];。しかし、ライブではうまくいきませんでした。エラーが配列にアクセスしていることを理解するのに多くの時間がかかりました。

これで問題は解決しました:

$pageUrl = explode('?',curPageURL());
$pageURL = pageURL[0];


function curPageURL() {
        $pageURL = 'http';
        if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
        $pageURL .= "://";
        if ($_SERVER["SERVER_PORT"] != "80") {
            $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
        } else {
            $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
        }
        return $pageURL;
    }
  • 誰でも理由を説明できますか?

  • 関数の戻り値で直接配列インデックスにアクセスすることは禁止されていますか? もしそうなら、なぜ私のローカルホストでは機能したのに、私のライブホストでは機能しなかったのですか?

4

2 に答える 2

4

$pageUrl = explode('?',curPageURL())[0];PHP バージョン >= 5.4の場合のみ利用可能

PHP 5.4 以降では、関数またはメソッド呼び出しの結果を直接配列逆参照することが可能です。以前は、一時変数を使用することしかできませんでした。

オンライン ホストはそのバージョンより下です。

于 2013-04-29T07:32:19.490 に答える
4

関数の結果に対する配列の逆参照current()をサポートする PHP 5.4が必要になるまで必要です。

$pageUrl = current(explode('?',curPageURL()));
于 2013-04-29T07:33:09.933 に答える