[系列文章] PHP日常注意點 - 記錄2

junwind發表於2020-09-11

1,邏輯運算子

and && 兩邊的表示式都為true,結果才為true
or || 其中一邊為true,則結果就為true
xor 異或 , 兩邊僅一個為true,結果才為true
! 非

注意:&& || 的運算優先順序是比and or 高的 ; and or 則比 賦值= 低的

$a = 3;
$b = false;
$c = $a or $b;
var_dump($c);          // 這裡的 $c 為 int 值3,而不是 boolean 值 true

##################################

$a = 3;
$b = false;
$d = $a || $b;
var_dump($d); //bool(true)

還有一點,&& || 有短路現象,即&&判定第一個條件是false時,後面的就不執行了;
||第一個判定為true,後面的也不執行了

2,陣列運算子

$arr1 + $arr2 相當於兩個陣列的集合,但是得注意,是以前面陣列元素為準,後面陣列如果有鍵和前面相同的,則被覆蓋;看下面例子

$x = [1,2,'xqw'];
$y = array(4,'lyl',true);
$z = array('xqw',3=>4,4=>'lyl',5=>true,'xqw2');
echo "<pre>";
print_r($x+$y);
print_r($x+$z);
print_r($x+$y+$z);

$arr1 == $arr2 , 兩個陣列具有相同的元素,值的資料型別不用完全一致,元素出現的順序也可不同,則返回true

$a = [0=>1,1=>'2',2=>3];
$b = [1=>2,0=>1,2=>3];
var_dump($a==$b);   //bool(true)
var_dump($a===$b);    //false

$arr1 === $arr2 , 要求兩個陣列的元素一模一樣,即值的資料型別一致,元素的順序也得一致
!= , !== , <>

3,switch中的break

如果執行的某個case中,最後沒有break,則不用判斷下一個case的條件了,直接執行;
最後的default是可省的,並且default裡面的break也是可省的;

4,字串遍歷

你沒看錯,是字串,直接上程式碼

$str = 'hello php';
for ($i=0;$i<strlen($str);++$i) {
    echo $str[$i],'@';
}

5,陣列的遍歷

索引陣列可以用for迴圈遍歷;索引,關聯,多維都可以使用foreach遍歷

本作品採用《CC 協議》,轉載必須註明作者和本文連結
六月的風

相關文章