0

次のコードがあります。

$data = unserialize(db::select_xf_session_blob($_COOKIE['xf_session']));
$user_id = $data['user_id'];

変数のインデックスを取得するためだけに変数を宣言しなければならないのはもったいないようです。

これはよりエレガントなソリューションのようです:

$user_id = unserialize(db::select_xf_session_blob($_COOKIE['xf_session']))['user_id'];

しかし、もちろん、それは有効ではありません。

私の質問は、私の最初のコード例を書くよりエレガントな方法はありますか?

4

2 に答える 2

3

PHP 5.4 では、2 番目の方法を実行できます。ただし、以前のバージョンでは、最初のバージョンを実行する必要があります。

于 2012-10-03T08:06:56.053 に答える
1

ダミー関数を使用できます:

function sub(array $arr, $key) {
    return $arr[$key];
}

このような:

$user_id = sub(unserialize(db::select_xf_session_blob($_COOKIE['xf_session'])), 'user_id');

または、添字式をサポートする最新バージョンの PHP にアップグレードすることもできます。

于 2012-10-03T08:08:35.043 に答える