2017年10月11日 星期三

運算子(Operator)

運算子(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;
將數值51後的結果6,指定給變數「$x
將數值83後的結果5,指定給變數「$y
將數值34後的結果12,指定給變數「$z
將數值72後的結果3.5,指定給變數「$k
將數值165後的餘數,指定給變數「$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
改變35後結果的正負值,並輸出數值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="">
回傳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="">
  {
   echo("\$a<10 o:p="">
  }
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


物件運算子「->
通常運用於物件導向的程式設計概念
舉例
王小明是一個人,是實體的人,稱其為一個物件
王小明有手、有腳、有嘴巴等,稱為王小明的「屬性」
王小明會跑、會跳、會吃東西,而這些動作就稱為王小明的「方法」
如果以程式設計的觀念,要表達王小明的手,可寫成:
物件「王小明」->屬性「手」
同樣的要表達王小明正在跑步這個動作,運用物件運算子可寫成:

物件「王小明」->方法「跑步」

沒有留言:

用頭腦去思考,不要人云亦云才好, 宗教信徒就是依賴與自私心態(求東求西)的人, 光是這點就很容易暴露弱點了, 難怪seafood吃飽飽,哈哈。 續上, 除了依賴與自私心態(兩者都是人性)之外。 另外也有很大一部份的人,是人云亦云的思考邏輯, 所以宗教才能譁眾取寵。