PHP學習記錄之運算子

2022-09-23 03:11:56 字數 3433 閱讀 3835

<?php

// 算術運算子

// + - * / % 

// 連線運算子 .

// 將點號前後的字串連線起來,如果不是字串,會自動轉換為字串。

// 。號兩邊有數字的話,要加空格將數字和.隔開;

echo 'ab'.'cd'; //abcd

echo 123 .'cd'; //123cd

echo 123 . 456; ///123456

echo 123 . true; // ‘1231’,true轉為字串,為‘1’

echo '123'.false; // ‘123’,false轉為字串,為“”,空字串

//自賦值運算子

//針對數字的:+= -= *= /= %=

// 針對字串的: 。=

$a = 1;

$a += 1;

echo $a; //2

$b = 'abc';

$b .= 'hhh';

echo $b; //abchhh

// 自增或自減運算子

echo '

';$a1 = 1;

$a2 = 1;

echo $a1++, $a1; // 12,先取值1,再將原來a1加1變為2;再輸出

echo ++$a2, $a2;// 22,先將原來a1加1變為2,再取值2;再輸出

//比較運算

// 等於== :兩個資料基本相等,型別可能發生轉換,就算是相等,這是一種模糊相等

// 如果比較一個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行。此規則也適用於 switch 語句。當用 === 或 !== 進行比較時則不進行型別轉換,因為此時型別和數值都要比對。

echo 1==true; //1

echo 1=='1'; //1

echo false==0; //1

echo 1.0==1; //1

//全等於=== :資料型別和值都一樣,才是全等。

echo 1===1; //1

// 不全等與!==

echo 1!=='1'; //1

var_dump (''==0); //bool(true). ""==0==false==null

var_dump ('abc'

var_dump (false<2); //bool(true) ,有bool值,則其他資料也會轉為bool值後進行比較

var_dump (null

var_dump ('1'

var_dump (>1); //bool(ture)

var_dump (>'1'); //bool(true)

var_dump (// 三元運算子

// 表示式 (expr1) ? (expr2) : (expr3) 在 expr1 求值為 true 時的值為 expr2,在 expr1 求值為 false 時的值為 expr3。

// 簡化形式表示式 expr1 ?: expr3 在 expr1 求值為 true 時返回 expr1,否則返回 expr3。

echo 1?2:3?4:5; // 4

echo 1?:2; // 1 ,這是簡化寫法

// 邏輯運算子

// && || ! and or

var_dump (false && func()); //bool(false)

var_dump (true || func()); //bool(true)

//上面的func()不會被呼叫,被短路了

$a = 16;//判斷給定的數是否能被3和5整除

if ($a%3==0 && $a%5==0) else

//邏輯非

if (!isset($a))

if (empty($a))

// 位運算子

// 位運算子允許對二進位制數指定的位進行求值和操作,整數之間的按位與先要轉換為二進位制數。

// $a & $b and(按位與) 將把 $a 和 $b 中都為 1 的位設為 1。

// $a | $b or(按位或) 將把 $a 和 $b 中任何一個為 1 的位設為 1。

// $a ^ $b xor(按位異或) 將把 $a 和 $b 中一個為 1 另一個為 0 的位設為 1。

// ~ $a not(按位取反) 將 $a 中為 0 的位設為 1,反之亦然。

// 要用括號確保想要的優先順序。例如 $a & $b == true 先進行比較再進行按位與;而 ($a & $b) == true 則先進行按位與再進行比較。

//錯誤抑制符@

// 在一個表示式出現錯誤的時候,可以將錯誤隱藏起來不輸出,但錯誤依然存在。應用於某些不能控制的錯誤出現時。不讓錯誤資訊出現在使用者使用的過程中。

if (@mysqli_connect('localhost','root','123')) else

//未加@前:

//加了@之後:

//運算子的優先順序

1、括號優先;

2、先乘除取餘後加減;

3、賦值通常在最後;

4、大致為:算術》比較》邏輯;

練習:給定一個整數表示年份,判斷該年份是否是閏年。

經過多次修改,終於達到了我的預期結果。

要求:第一次訪問時顯示:

訪問後直接點判斷顯示: