# Learn PHP

### PHP Logical Operator

We can use logical operators to combine boolean value and do the boolean logic arithmetic.

When resolving equations using logic.

Operator Name Description
AND Logical AND True if both \$a and \$b are true
&& Logical AND True if both \$a and \$b are true
OR Logical OR True if either \$a or \$b is true
|| Logical OR True if either \$a or \$b is true
XOR Logical XOR True if either \$a or \$b is true, but not both
! Logical NOT Inverts true to false and false to true: !\$a

Boolean values to produce a result of either true or false :

Operator Name Description
&&(and) \$x && \$y true if both \$x and \$y evaluate to true ; false otherwise
and \$x and \$y true if both \$x and \$y evaluate to true ; false otherwise
|| (or) \$x || \$y true if either \$x or \$y evaluates to true ; false otherwise
or \$x or \$y true if either \$x or \$y evaluates to true ; false otherwise
xor \$x xor \$y true if \$x or \$y (but not both) evaluates to true ; false otherwise
! (not) !\$x true if \$x is false ; false if \$x is true

### Example

```		 	<?php
\$x = 2;
\$y = 3;
echo ( (\$x  >  1)  &&  (\$x  <  5) ) .  "\n";
echo ( (\$x == 2) or (\$y == 0) ) . "\n";
echo ( (\$x == 2) xor (\$y == 3) ) . "\n";
echo ( !(\$x == 5 ) ) . "\n";
?>
```

### Example

```		 	<?php
\$a = (false && foo());
\$b = (true  || foo());
\$c = (false and foo());
\$d = (true  or  foo());

// --------------------
// "||" has a greater precedence than "or"

// The result of the expression (false || true) is assigned to \$e
// Acts like: (\$e = (false || true))
\$e = false || true;

// The constant false is assigned to \$f before the "or" operation occurs
// Acts like: ((\$f = false) or true)
\$f = false or true;

var_dump(\$e, \$f);

// --------------------
// "&&" has a greater precedence than "and"

// The result of the expression (true && false) is assigned to \$g
// Acts like: (\$g = (true && false))
\$g = true && false;

// The constant true is assigned to \$h before the "and" operation occurs
// Acts like: ((\$h = true) and false)
\$h = true and false;

var_dump(\$g, \$h);
?>
```

### Example

```		 	<?php
\$x = 100;
\$y = 50;

if (\$x == 100 and \$y == 50) {
echo "Hello world!";
}
?>
```

### Example

```		 	<?php
\$x = 100;
\$y = 50;

if (\$x == 100 or \$y == 80) {
echo "Hello world!";
}
?>
```

### Example

```		 	<?php
\$x = 100;
\$y = 50;

if (\$x == 100 xor \$y == 80) {
echo "Hello world!";
}
?>
```

### Example

```		 	<?php
\$x = 100;
\$y = 50;

if (\$x == 100 && \$y == 50) {
echo "Hello world!";
}
?>
```

### Example

```		 	<?php
\$x = 100;
\$y = 50;

if (\$x == 100 || \$y == 80) {
echo "Hello world!";
}
?>
```

### Example

```		 	<?php
\$x = 100;

if (\$x !== 90) {
echo "Hello world!";
}
?>
```

False value

• The literal value false
• The integer zero (0)
• The float zero ( 0.0 )
• An empty string ( " " )
• The string zero ( "0" )
• An array with zero elements
• The special type null (including any unset variables)
• A SimpleXML object that is created from an empty XML tag

All other values are considered true in a Boolean context.