PHP
ソースコードリーディング
三項演算子

ソースコードを読んでいると、三項演算子を短くしたものが出てきた

ソースコードを読んでいると、以下のようなコードにぶち当たりました。

    public function read()
    {
        if ($this->_user !== null) {
            return $this->_user ?: null;
        }

        $this->_user = $this->_session->read($this->_config['key']) ?: false;

        return $this->_user ?: null;
    }

"?: "   これってなんでしょう?
どうやら、三項演算子の、真の場合に評価する式が存在しないもののようです。
つまり、

$this->_user ?: null;

の場合、"$this->user"が存在しない場合は、nullを返すようです。
では、存在した場合は何を返すかというと、このコード見ていると、何も返さないように見えないですね。
"$this->
user"の内容を返すように見えます。
では、実験して見ます。
実行環境は、環境用意するのがめんどいので、以下の環境を使いました。

https://paiza.io/?locale=ja-jp

では、以下のようなソースコードを書いて見ます。

<?php
// Here your code !

$flag = "hello";

echo $flag ?: "false";

$falseflag = false;

echo $falseflag ?: "false"

?>

実行結果は以下のようになります。

hellofalse

つまり、

echo $flag ?: "falseです";

は、\$flagがfalse,0,"",nullの時は、"falseです"の結果を表示し、それ以外の\$flagに何か入っている時は、\$flagの内容を表示するようです。
三項演算子の変形パターンとして覚えていただければ幸いです。