# PHP : Logical Operators

## Description

The standard logical operators and, or, not, and xor are supported by PHP. Logical operators first convert their operands to boolean values and then perform the respective comparison.

Here is the list of logical operators :

Operator Name Example Result
&& and \$x && \$y is true if both \$x and \$y are true.
|| or \$x || \$y is true if either \$x or \$y is true.
xor xor \$x xor \$y is true if either \$x or \$y are true, but not both.
! not !\$x is true if \$x is not true.
and and \$x and \$y is true if both \$x and \$y are true.
or or \$x or \$y is true if either \$x or \$y is true.

PHP logical && operator

This above pictorial helps you to understand the concept of LOGICAL AND operation with an analogy of taps and water.

In case-1 of the picture, both of the taps are closed, so the water is not flowing down. Which explains that if both of conditions are FALSE or 0, the return is FALSE or 0.

In case-2 of the picture, one of the taps are closed, even then, the water is not flowing down. Which explains that even if any of conditions are FALSE or 0, the return is FALSE or 0.

case-3 of the picture resembles CASE -2.

In case-4 of the picture, both of the taps are open, so the water is flowing down. Which explains that if both of conditions are TRUE or 1, the return is TRUE or 1.

So we can conclude that if and only if, both of the conditions are TRUE or 1, LOGICAL AND operations returns TRUE or 1.

PHP logical || operator

The above pictorial helps you to understand the concept of LOGICAL OR operation with an analogy of taps and water.

In case-1 of the picture, both of the taps are closed, so the water is not flowing down. Which explains that if both of conditions are FALSE or 0, the return is FALSE or 0.

In case-2 of the picture, one of the taps are closed, and we can see that the water is flowing down. Which explains that if any of conditions are TRUE or 1, the return is TRUE or 1.

case-3 of the picture resembles CASE -2.

In case-4 of the picture, both of the taps are open, so the water is flowing down. Which explains that if both of conditions are TRUE or 1, the return is TRUE or 1.

So we can conclude that in LOGICAL OR operation if any of the conditions are true, the output is TRUE or 1.

Example :

<?php
\$a = true && false;
var_dump(\$a);
\$b = false && true;
var_dump(\$b);
\$c = true && true;
var_dump(\$c);
\$d = false && false;
var_dump(\$d);
\$a = true || false;
var_dump(\$a);
\$b = false || true;
var_dump(\$b);
\$c = true || true;
var_dump(\$c);
\$d = false || false;
var_dump(\$d);
?>

Output :

bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

View the example in the browser

Previous: Comparison Operators
Next: Assignment Operators

﻿

## PHP: Tips of the Day

PHP: How to get a variable name as a string in PHP?

You could use get_defined_vars() to find the name of a variable that has the same value as the one you're trying to find the name of. Obviously this will not always work, since different variables often have the same values, but it's the only way I can think of to do this.

Edit: get_defined_vars() doesn't seem to be working correctly, it returns 'var' because \$var is used in the function itself. \$GLOBALS seems to work so I've changed it to that.

function print_var_name(\$var) {
foreach(\$GLOBALS as \$var_name => \$value) {
if (\$value === \$var) {
return \$var_name;
}
}

return false;
}

Edit: to be clear, there is no good way to do this in PHP, which is probably because you shouldn't have to do it. There are probably better ways of doing what you're trying to do.

Ref : https://bit.ly/37qFimU