萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php 數組運算符(+)、字符串運算符(.)、邏輯運算符(&& AND || OR XOR)

php 數組運算符(+)、字符串運算符(.)、邏輯運算符(&& AND || OR XOR)

數組運算符(+)、字符串運算符(.)、邏輯運算符(&& AND || OR XOR)有需要的朋友可參考參考。

php數組運算符


$a + $b 聯合 $a 和 $b 的聯合。
$a == $b 相等 如果 $a 和 $b 具有相同的鍵/值對則為 TRUE。
$a === $b 全等 如果 $a 和 $b 具有相同的鍵/值對並且順序和類型都相同則為 TRUE。
$a != $b 不等 如果 $a 不等於 $b 則為 TRUE。
$a <> $b 不等 如果 $a 不等於 $b 則為 TRUE。
$a !== $b 不全等 如果 $a 不全等於 $b 則為 TRUE。

PHP 僅有的一個數組運算符是 + 運算符。它把右邊的數組附加到左邊的數組後,但是重復的鍵值不會被覆蓋。

 代碼如下 復制代碼

$a = array("a" => "apple", "b" => "banana");
$b = array("a" =>"pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b;

var_dump($c);

執行後,此腳本會顯示:

 代碼如下 復制代碼

array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}

數組中的單元如果具有相同的鍵名和值則比較時相等。


Example #1 比較數組

 代碼如下 復制代碼

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

字符串運算符

有兩個字符串運算符。第一個是連接運算符(“.”),它返回其左右參數連接後的字符串。第二個是連接賦值運算符(“.=”),它將右邊參數附加到左邊的參數後

 代碼如下 復制代碼

<?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(邏輯與) TRUE ,如果 $a 與 $b 都為 TRUE 。
$a or $b Or(邏輯或) TRUE ,如果 $a 或 $b 任一為 TRUE 。
$a xor $b Xor(邏輯異或) TRUE ,如果 $a 或 $b 任一為 TRUE ,但不同時是。
! $a Not(邏輯非) TRUE ,如果 $a 不為 TRUE 。
$a && $b And(邏輯與) TRUE ,如果 $a 與 $b 都為 TRUE 。
$a || $b Or(邏輯或) TRUE ,如果 $a 或 $b 任一為 TRUE 。

“與”和“或”有兩種不同形式運算符的原因是它們操作的優先級不同。

 代碼如下 復制代碼

<?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);
?>

以上例程的輸出類似於:

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

copyright © 萬盛學電腦網 all rights reserved