Logiska

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Logiska operatorer

Logiska operatorer används för att utföra logiska operationer, vanligtvis mellan två boolean-värden (sant eller falskt). Resultatet av dessa operationer är också ett boolean-värde.

Logiska Operatorer

Logiska operatorer används för att kombinera eller jämföra booleska uttryck (sant eller falskt). Resultatet av dessa operationer är också ett booleskt värde.

Logiska Operatorer
Exempel Namn Resultat
$a and $b Och sant om både $a och $b är sanna.
$a or $b Eller sant om antingen $a eller $b är sant.
$a xor $b Antingen eller sant om antingen $a eller $b är sant, men inte båda.
!$a Inte sant om $a inte är sant.
$a && $b Och sant om både $a och $b är sanna.
$a $b Eller sant om antingen $a eller $b är sant.

Anledningen till de två olika variationerna av "och" och "eller" operatorer är att de har olika precedens. (Se Operator Precedence.)

Exempel #1 Illustration av logiska operatorer

<?php
// --------------------
// foo() kommer aldrig att kallas eftersom dessa operatorer är kortslutande

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" har högre precedens än "or"

// Resultatet av uttrycket (false || true) tilldelas till $e
// Fungerar som: ($e = (false || true))
$e = false || true;

// Konstanten false tilldelas till $f innan "or"-operationen inträffar
// Fungerar som: (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" har högre precedens än "and"

// Resultatet av uttrycket (true && false) tilldelas till $g
// Fungerar som: ($g = (true && false))
$g = true && false;

// Konstanten true tilldelas till $h innan "and"-operationen inträffar
// Fungerar som: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Ovanstående exempel kommer att producera något liknande:

* bool(true)
* bool(false)
* bool(false)
* bool(true)
</pred>