このソース コードを Web サイトで見たのですが、意味がわかりません。誰か教えてもらえませんか? どうもありがとうございます。
private function buildCache()
{
    !empty($this->cache_list) && $this->cache->loadCache($this->cache_list);
}
このソース コードを Web サイトで見たのですが、意味がわかりません。誰か教えてもらえませんか? どうもありがとうございます。
private function buildCache()
{
    !empty($this->cache_list) && $this->cache->loadCache($this->cache_list);
}
サポートしにくい悪いコードの例です。
この!empty($this->cache_list) && $this->cache->loadCache($this->cache_list);ステートメントは と同等$dummy = !empty($this->cache_list) && $this->cache->loadCache($this->cache_list);です。
遅延評価のようなものがあるため、 inA && BはtrueBのみが評価されます (そうでない場合は、故意に false であり、評価する必要はありません)。基本的に、同じですAA && BB$x = a() && b()
$x = true;
if(!a()) {
    $x = false;
} else {
    $x = b();
}
したがって、元のステートメントを次のように展開できます。
$dummy = true;
if(empty($this->cache_list)) {
    $dummy = false;
} else {
    $dummy = $this->cache->loadCache($this->cache_list);
}
$dummy変数は必要ないことを思い出してください。
if(!empty($this->cache_list)) {
    $this->cache->loadCache($this->cache_list);
}
このコードは元のコードよりも 2 行長いですが、理解しやすく維持しやすくなっています。この最終バージョンのようなコードを記述し、元のワンライナーのようなものを記述しないようにする必要があります。
あなたはそれを自分で見ることができます: 元のワンライナーで何が起こっているのかを伝えるのは難しかったですが (非常に難しかったので SO で質問しなければなりませんでした)、最終バージョン: が空でない場合は、引数として渡すことcache_listを呼び出します (そうでない場合、が空の場合、空の値を引数として渡すことを呼び出すのはおそらく無意味です)。loadCachecache_listcache_listloadCache
$this->cache_listが空ではなく、$this->cache->loadCache()関数が true を返す場合を意味します
私はそれが次のショートカットだと思います:
private function buildCache()
{
    if( ! empty($this->cache_list)){
        $this->cache->loadCache($this->cache_list);
    }
}
「cache_list」があれば、それをロードします。これらのアクションの詳細については、クラスまたはフレームワークのドキュメントを確認する必要があります。