数组运算符

常见数组运算符

  • $a + $b,$a 和 $b 的联合
  • $a == $b,$a 和 $b 键和值都相同则为 TRUE
  • $a === $b,$a 和 $b 键和值且顺序和类型都相同返回 TRUE
  • $a != $b,$a 和 $b 中键或值不同返回 TRUE
  • $a <> $b,等同于 !=
  • $a !== $b,$a 和 $b 中键,值,顺序或类型,其中一个不相同则返回 TRUE
<?php

$a = ["a" => "apple", "b" => "banana"];
$b = ["a" => "pear", "b" => "strawberry", "c" => "cherry"];
$c = ["b" => "banana", "a" => "apple"];

var_dump($a + $b, $b + $a);
var_dump($a == $c, $a === $c);

结果输出

array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}
bool(true)
bool(false)

从结果可以看出

  • + 运算符把右边的数组元素(除去键值与左边的数组元素相同的那些元素)附加到左边的数组后面,但是重复的键值不会被覆盖。
  • ===,需要数组的键,值,类型和顺序都相同,才返回 TRUE。

 

PHP7 新增操作

组合比较符

太空船操作符使用 <=> 表示,用于比较两个表达式。当 $a 小于、等于或大于 $b 时它分别返回-1、0或1。 比较的原则是沿用 PHP 的常规比较规则进行的。

<?php
// 整数
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 浮点数
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

NULL合并运算符

NULL 合并运算符使用 ?? 表示,意味着如果 ?? 之前的变量存在且值不为 NULL,它就会返回自身的值,否则返回 ?? 后的操作数。

<?php

$username = $_GET['user'] ?? 'nobody';
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';

合并运算符通常可用三元运算符作为替换,多个合并运算符的优先级从左到右一次执行。

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。