$a + $b union The union of $a and $b.
$a == $b equal TRUE if $a and $b have the same key/value pair.
$a === $b Congruent TRUE if $a and $b have the same key/value pairs and are of the same order and type.
$a != $b is not equal TRUE if $a is not equal to $b.
$a <> $b is not equal TRUE if $a is not equal to $b.
$a !== $b is not equal TRUE if $a is not equal to $b.
The only array operator in PHP is the + operator. It appends the right array to the left array, but duplicate key values are not overwritten.
$a = array("a" => "apple", "b" => "banana"); $b = array("a" =>"pear", "b" => "strawberry", "c" => "cherry"); $c = $a + $b; var_dump($c);
After execution, this script will display:
array(3) { ["a"]=> string(5) "apple" ["b"]=> string(6) "banana" ["c"]=> string(6) "cherry" }
Units in the array will be equal when compared if they have the same key name and value.
<?php $a = array("apple", "banana"); $b = array(1 => "banana", "0" => "apple"); var_dump($a == $b); // bool(true) var_dump($a === $b); // bool(false) ?>
There are two string operators. The first is the concatenation operator ("."), which returns the concatenated string of its left and right arguments. The second is the concatenation Assignment operator (".="), which appends the right argument to the left argument
<?php echo "thr"."ee"; //prints the string "three" echo "twe" . "lve"; //prints the string "twelve" echo 1 . 2; //prints the string "12" echo 1.2; //prints the number 1.2 echo 1+2; //prints the number 3 ?>
<?php $a = '12345'; // This works: echo "qwe{$a}rty"; // qwe12345rty, using braces echo "qwe" . $a . "rty"; // qwe12345rty, concatenation used // Does not work: echo 'qwe{$a}rty'; // qwe{$a}rty, single quotes are not parsed echo "qwe$arty"; // qwe, because $a became $arty, which is undefined ?>
$a and $b And (logical AND) TRUE if both $a and $b are TRUE.
$a or $b Or (logical OR) TRUE if either $a or $b is TRUE.
$a xor $b Xor (logical exclusive OR) TRUE if either $a or $b is TRUE, but not both at the same time.
! $a Not (logical not) TRUE , if $a is not TRUE .
$a && $b And (logical AND) TRUE if both $a and $b are TRUE.
$a || $b Or (logical OR) TRUE if either $a or $b is TRUE.
The reason why "AND" and "OR" have two different forms of operators is that the priorities of their operations are different.
<?php ($a = $_GET['var']) || ($a = 'a default'); ?>
<?php // 下面的 foo() 不会被调用,因为它们被运算符“短路”了。 $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo()); // "||" 的优先级比 "or" 高 $e = false || true; // $e 被赋值为 (false || true),结果为 true $f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高] var_dump($e, $f); // "&&" 的优先级比 "and" 高 $g = true && false; // $g 被赋值为 (true && false),结果为 false $h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高] var_dump($g, $h); ?>
The output of the above routine is similar to:
bool(true) bool(false) bool(false) bool(true)
The above is the detailed content of Detailed explanation of PHP array operators, string operators and logical operator examples. For more information, please follow other related articles on the PHP Chinese website!