laravel - Terdapat "dan, atau" dalam penghakiman bersyarat PHP pada masa yang sama.
習慣沉默
習慣沉默 2017-05-16 12:02:33
0
5
571

Terdapat "dan, atau" dalam penghakiman bersyarat PHP pada masa yang sama Apakah keutamaan?

Contohnya:

if ($article->user_id ==  Auth::id() && $article->status==0 || $article->expired_at < Carbon::now())
{
    $article->delete();
    return back();
}

Terdapat 3 syarat dalam pernyataan if:

$article->user_id ==  Auth::id()      //文章属于该登录用户
$article->status==0                   //文章的status字段为0
$article->expired_at < Carbon::now()  //文章已过期

Apa yang ingin saya nyatakan ialah syarat pertama mesti dipenuhi, dan hanya satu syarat kedua dan ketiga mesti dipenuhi.

Persoalannya ialah bagaimana untuk menulis pernyataan bersyarat ini Adakah betul untuk menulisnya seperti dalam kod if() di atas?

習慣沉默
習慣沉默

membalas semua(5)
刘奇

Menurut manual PHP: Halaman keutamaan operator menunjukkan bahawa keutamaan adalah dan &gt atau ; >

所以题主的代码可以这样写:

$isAuthor = $article->user_id ==  Auth::id();
$isValid = $article->status==0 || $article->expired_at < Carbon::now();

if ($isAuthor && $isValid)
{
    $article->delete();
    return back();
}

ifJadi kod subjek boleh ditulis seperti ini:

rrreee 🎜if pernyataan penghakiman tidak boleh terlalu panjang, kerana ia tidak boleh dibaca;🎜
仅有的幸福

Manual Rujukan

Adalah disyorkan untuk mengembangkan 2 dan 3 syarat dalam kurungan

phpcn_u1582
if(a && (b||c))
{
    $article->delete();
    return back();
}
世界只因有你

dan mempunyai keutamaan yang lebih besar daripada atau

漂亮男人
if ($article->user_id ==  Auth::id() && ($article->status==0 || $article->expired_at < Carbon::now()))
{
    $article->delete();
    return back();
}

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan