Nastavení přes bitové operace

Jak jde jinak zapsat notoricky známý zápis

  1. foo($string, $options = array('upper' => true, 'trim' = true, 'html' => true))
Jde přepsat na
  1. foo($string, $options = UPPER | TRIM | HTML)


Základem je bitový operátor "|" "or" (http://www.php.net/manual/en/language.operators.bitwise.php). Principem je že každý bit reprezentuje zapnutou nebo vypnutou volbu nastavení.
  1. define('UPPER', 1); # 2^0 001
  2. define('TRIM', 2); # 2^1 010
  3. define('HTML', 4); # 2^2 100
Pro lepší pochopení uvedu příklad.
  1. UPPER | TRIM | HTML # vysledek bude 111 neboli 7
  2. 001
  3. 010
  4. 100
  5. ---
  6. 111
Jedna konstanta může zapnout i více voleb.
  1. 001
  2. 101
  3. ---
  4. 101
Bohužel tímto způsobem můžeme předávat volby které jsou jen typu bool.