2017-01-25 5 views
2

この式を書き換えるより簡潔な方法は何ですか? PHP> = 7でこの式をより簡潔に書き換えるにはどうすればよいですか?

$user = $user ? $user : Yii::$app->getUser()->identity; 
+7

どれくらい簡潔にできますか? –

+0

真。私はちょうどそれを表現するより良い方法があるかもしれないと仮定しました。 –

+0

PHP7では - '$ user = $ user ?? Yii :: $ app-> getUser() - > identity; ' – AbraCadaver

答えて

0

あなたはちょうどそれが少し短くしたい場合は、またはを使用することができます。

$user || $user = Yii::$app->getUser()->identity; 

PHP 7を使用している場合、AbraCadaverとしてヌル合体演算子を使用すると意味があります。これが非常に重要なことです。

しかし、一般的に私はあなたのコードを短くするという点で、あまりにも多くの「最適化」をしようとするのに対して、本当にお勧めします。明瞭さと可読性は、簡潔さよりはるかに重要です。

+0

例外:未定義の変数:user' – AbraCadaver

+0

'$ user'が定義されていると仮定しましたが、OPコードを考慮してfalseと評価されることがあります。もしそうでなければ、三元は同じ通知を受けるでしょう。 –

+0

しかし私は、誰もが "仮定"したときに何が起こるかを知っていると思います。 ;) –

1
$user = $user ?: Yii::$app->user->identity; 
+0

例外: '未定義変数:user'。ほとんどの人はこの方法で三項を使ってそれが設定されているかどうかを確認します。そうでなければこの通知を受け取ります。 – AbraCadaver

関連する問題