運算子(Operator)
所謂的運算子(Operator)就好像小時候學過的「四則運算」裡的「加減乘除」一樣
運算子家族
運算子
|
動作
|
範例
|
說明
|
=
==
>
(>=)
<
(<=)
!= (<>)
|
指定
等於
大於(大於或等於)
小於(小於或等於)
不等於
|
$x=100;
If
($score==100) echo("滿分耶");
If
($score>59) echo("還好及格");
If
($score<60 echo="" span="">嗚不及格");
If
($score!=0) echo("沒抱鴨蛋");
|
變數「$x」的值被指定為100
如果變數「$score」等於100則顯示「滿分」
如果變數「$score」大於59則顯示「及格」
如果變數「$score」小於60則顯示「不及格」
如果變數「$score」不等於0則顯示「慶幸」
|
+
-
*
/
%
|
加
減
乘
除
取餘數
|
$x=5+1;
$y=8-3;
$z=3*4;
$k=7/2;
$a=16%5;
|
將數值5加1後的結果6,指定給變數「$x」
將數值8減3後的結果5,指定給變數「$y」
將數值3乘4後的結果12,指定給變數「$z」
將數值7除2後的結果3.5,指定給變數「$k」
將數值16除5後的餘數,指定給變數「$a」
|
And (&&)
Or
(||)
Xor
Not (!)
|
與
或
互斥
不為
|
Echo(1
and 1);
Echo(1
or 0);
Echo(0
xor 1);
Echo(not
0);
|
輸出值為1(true),同時為「真」時
輸出值為1(true),任一數為「真」時
輸出值為1(true),一數「真」另一「假」時
輸出值為1(true),經not運算反相
|
.
@
$
-
?:
->
|
字串連結
取消錯誤訊息
宣告為變數
正負顛倒
條件判斷
(三元運算子)
指定物件(物件運算子)
|
Echo("分數為".85. "分");
Echo(4/0);
$x=60;
Echo(-(3-5));
$score>=60
? "及格" : "不及格";
$class->$cname;
|
連結後輸出字串為「分數為85分」
強迫PHP不顯示出錯誤訊息
宣告整數變數「$x」並指定數值60
改變3減5後結果的正負值,並輸出數值2
條件式若成立則輸出「及格」反之「不及格」
指定物件「$class」的屬性「$cname」
|
指定變數「指定運算子」
所謂指定(Assign)變數,就好像是給變數一個值,或改變變數的值
在PHP的領域裡,稱指定變數的運算子為「指定運算子」(Assignment Operators)
如下以變數$x做為示範,並指定$x的初始值為「10」
運算子
|
說明
|
範例
|
結果
|
念法
|
=
|
等於指定運算子
|
$x=1
|
$x=1
|
$x=1
|
+=
|
加法指定運算子
|
$x+=1
|
$x=11
|
$x=x+1
|
-=
|
減法指定運算子
|
$x-=1
|
$x=9
|
$x=x-1
|
*=
|
乘法指定運算子
|
$x*=2
|
$x=20
|
$x=x*2
|
/=
|
除法指定運算子
|
$x/=2
|
$x=5
|
$x=x/2
|
%=
|
餘數指定運算子
|
$x%=3
|
$x=1
|
$x=x%3
|
.=
|
字串指定運算子
|
$x.="abc"
|
$x="10abc"
|
$x=x."abc"
|
念法:變數x=x+1 x=x-1 x=x*2
x=x/2 x=x%3 x=x."abc"
比較變數「比較運算子」
PHP也可以比較兩個變數的關係,比方說有甲、乙兩學生成績,要比較兩成績的高低,必須透過「比較運算子」
比較運算子列表如下
以變數$x做為示範,並指定$x的初始值為「5」
運算子
|
說明
|
範例
|
結果
|
==
|
相等運算子
|
$x==5
|
回傳true
|
===
|
完全相等運算子
|
$x===5
|
回傳true
|
!=
|
不等於運算子
|
$x!=10
|
回傳true
|
>
|
大於運算子
|
$x>2
|
回傳true
|
<
|
小於運算子
|
$x<10 o:p="">10>
|
回傳true
>=
大於或等於運算子
$x>=5
回傳true
<=
小於或等於運算子
$x<=5
回傳true
若比較後的結果為真,則傳回一個布林值「true」或「1」;反之則傳回「false」或「0」
PHP程式碼範例
$a=10;
$a-=5; //也可以用$a=$a-5;
echo($a);
echo("
");
");
if($a<10 o:p="">10>
{
echo("\$a<10 o:p="">10>
}
elseif($a>10)
{
echo("\$a>10");
}
else
{
echo("\$a=10");
}
算術運算「算術運算子」
PHP提供完整的四則運算子,我們稱之為「算術運算子」(Arithmatic
Operators),
以變數$x做為示範,並指定$x的初始值為「10」
運算子
|
說明
|
範例
|
結果
|
+
|
加法運算子
|
$x+5
|
$x=15
|
-
|
減法運算子
|
$x-5
|
$x=5
|
*
|
乘法運算子
|
$x*5
|
$x=50
|
/
|
除法運算子
|
$x/5
|
$x=2
|
%
|
餘數運算子
|
$x%3
|
$x=1
|
連結字串「連結運算子」
要將兩個字串「連結」起來,變成一個字串變數時,則可以使用「字串連結運算子」(String Operators)來連結
範例
$string1="The
sooner our happiness together begins";
$string2="the
longer it will last";
則字串連結如下
$string3 =
$string1.$string2;
Echo $string3;
以變數$x與$y說明,當中$x= "abc"; $y="def";
運算子
|
說明
|
範例
|
結果
|
.
|
字串連結運算子
|
$z=$x.$y
|
$z="abcdef"
|
連結變數時,同樣地字串連結運算子「.」會將欲連結的值,自動轉換為字串的型態
所以千萬不要將數字型態的值或變數用「.」來做相加喔
對錯與真偽「邏輯運算子」
掌管對錯真偽的運算子,我們稱之為「邏輯運算子」(Logical Operators)
範例
當中$x=5;
$y=10; $z=true;
運算子
|
說明
|
範例
|
結果
|
&&
|
AND(並且)
|
$x==5 && $y==10
|
回傳true
|
||
|
OR(或)
|
$x==5 || $y==5
|
回傳true
|
!
|
NOT(不是)
|
!$z
|
回傳false
|
「and」邏輯在兩方條件皆為成立時,才會傳回真值(true)
「or」 邏輯在兩方條件中,只要有一條件成立時,即傳回真值(true)
「xor」邏輯則是兩方條件,必須一方成立,另一方不成立,才會傳回真值(true)
「!」 邏輯就是將真值(true)變成假的(false),假的變成真的
程式錯誤的處理「錯誤控制運算子@」
PHP提供了「錯誤控制運算子」(Error Control Operators)的功能,可以略過可能會發生除數為零的錯誤
範例
在瀏覽器上會直接顯示錯誤訊息如下:
Warning: Division by zero in
c:\appserv\www\qqq.php on line 15
(程式發現分母為零,所以顯示錯誤的訊息)
加入錯誤控制運算子@
//則什麼事情也沒發生,畫面上的錯誤訊息也不見了
變數運算子
在字母的前面加一個「$」符號,就可以將此字串轉換成變數的型態
一元運算子
一元運算子(-)和邏輯運算子(!)很像,
唯一的不同點在一元運算子(-)轉換的是數字型態;而邏輯運算子(!)轉換的是布林型態的值
範例
$x=10;
$y=15;
echo!($x==$y); //傳回true
echo-($x-$y); //傳回+5
三元運算子「?:」
在PHP裡所謂的「元」是指「運算元」的意思,
而所謂的「運算元」就是被運算子所聯結的值就稱做「運算元」
以算術運算子「+」為例,如$x+$y ,在「+」的左右兩邊就是運算元了,
所以運算子「+」為二元運算子
而三元運算子,顧名思義就是有三個運算元交互連結了
三元運算子「?:」的運作原理非常簡單,在「?」前面的條件式,將依其條件成立與否,
而傳回「:」左右兩個值其中的一個,
當條件式成立的時候,會將「:」前面的值傳回,
反之若不成立的時候,就將「:」後面的值傳回。
$outstr= ($chinese>=60)?
"及格了":"不及格";
Echo($outstr);
結果將依變數$chinese的值來做判斷後,而選擇左右不同的字串帶入變數$outstr
物件運算子「->」
通常運用於物件導向的程式設計概念
舉例
王小明是一個人,是實體的人,稱其為一個物件
王小明有手、有腳、有嘴巴等,稱為王小明的「屬性」
王小明會跑、會跳、會吃東西,而這些動作就稱為王小明的「方法」
如果以程式設計的觀念,要表達王小明的手,可寫成:
物件「王小明」->屬性「手」
同樣的要表達王小明正在跑步這個動作,運用物件運算子可寫成:
物件「王小明」->方法「跑步」
沒有留言:
張貼留言