App\Libraries\ModsHelper::toBitset PHP Метод

toBitset() публичный статический Метод

public static toBitset ( $mods )
    public static function toBitset($mods)
    {
        if (!is_array($mods)) {
            return 0;
        }
        $bitset = 0;
        foreach (static::AVAILABLE_MODS as $availableMod) {
            if (in_array($availableMod[1], $mods, true)) {
                $bitset ^= 1 << $availableMod[0];
            }
        }
        return $bitset;
    }

Usage Example

Пример #1
0
 public function scopeWithMods($query, $modsArray)
 {
     return $query->where(function ($q) use($modsArray) {
         if (in_array('NM', $modsArray, true)) {
             $q->orWhere('enabled_mods', 0);
         }
         $bitset = ModsHelper::toBitset($modsArray);
         if ($bitset > 0) {
             $q->orWhereRaw('enabled_mods & ? != 0', [$bitset]);
         }
     });
 }