Nasıl bu mantığı simplfy olabilir

7 Cevap php

Ben sorun bu koşullu ifadeler mantığı basitleştirerek yaşıyorum. Bu yazı daha efervesan yolu var mı?

if(($x || $a) && ($x || $y))
{
   if($x){
          return true;
   }
}
return false;

7 Cevap

if ($x) return true;
return false;

Lütfen açıklamaya göre, sadece $x doğruysa, bu nedenle, bu gerçekten kontrol etmek için gereken tek deyimi, doğru return true? Değişkenler $a ve $y tamamen alakasız.

Edit: Aynı şey gibi:

return (bool) $x;

$ X doğruysa yalnızca true dönerseniz, o kodun geri kalanı önemsizdir. Bu durumda,

return (bool) $x;

EDIT: Oops ... bool bir döküm, bir işlev değil.

Durumu if, ($x || $a) && ($x || $y), eşdeğerdir dış $x || ($a && $y). Biz $x de olması gerektiğini koşulu ile true (iç if), biz olsun kavuşumu zaman ($x || ($a && $y)) && $x. Ve bu $x && $x || $x && $a && $y ki $x || $x && $a && $y indirgenebilir eşdeğerdir. Her iki VEYA dallarında $x true devam etmek olmalıdır. $x doğru dalında Ama eğer true, bütün durum zaten true.

Bu yüzden olması gereken tek değişken true olan $x,

return (bool) $x;

Birkaç kişi zaten kod sadece $ x konularda, gibi söylediler. Ben kısa kod sanırım:

return $x
if(($x && $a && $y)
{
    return true;
}
return false;

EDIT: bu basitçe return $x;

Bir tek satır ifadesi olarak bu yazabilirsiniz ...

return $x;

ne olursa olsun $ a ve $ y, $ x doğru dönmek gerçek olmak zorundadır

   if($x){
          return true;
   }

   return false;

?

Edit:

return $x