第四課 PHP的邏輯處理

日期:2008-08-04  作者:喜騰小二  來源:喜騰網  培訓中心

PHP 邏輯處理是最常應用的功能,但是很多時候會造成邏輯過多而結構復雜維護困難,這裡我們將講解如何制作簡單易用的程式。

白話解釋:邏輯處理就是所謂的條件判斷,例如程式中常用的if、else、elseif等
為什麼要提供這樣的處理,可以用在什麼地方?
邏輯處理應用最常見的例如註冊用戶、使用者登入、個人資料修改等

運算元是可以透過給出的一或多個值(用編程行話來說,運算式)來產生另一個值(因而整個結構成為一個運算式)的東西。所以可以認為函式或任何會返回一個值(例如
print)的結構是運算元,而那些沒有返回值的(例如 echo)是別的東西。

有三種類型的運算元。第一種是一元運算元,隻運算一個值,例如 !(取反運算元)或
++(加一運算元)。第二種是有限二元運算元,PHP 支援的大多數運算元都是這種。清單見下節運算元優先順序

第三種是三元運算元:?:。它應該被用來根據一個運算式在另兩個運算式中選擇一個,而不是用來在兩個陳述式或者程式路線中選擇。把整個三元運算式放在擴號裡是個很好的主意。



運算元優先順序

結合方嚮 運算元 附加資訊
非結合 new new
[ array()
非結合 ++ -- 遞增/遞減運算元
非結合 ! ~ - (int) (float)
(string) (array) (object) @
類型
* / % 算數運算元
+ - . 算數運算元字串運算元
<< >> 位運算元
非結合 < <= > >= 比較運算元
非結合 == != === !== 比較運算元
& 位運算元引用
^ 位運算元
| 位運算元
&& 邏輯運算元
|| 邏輯運算元
? : 三元運算元
= += -= *= /= .= %= &= |=
^= <<= >>=
賦值運算元
and 邏輯運算元
xor 邏輯運算元
or 邏輯運算元
, 多處用到


算術運算元
 

例子 名稱 結果
-$a 取反 $a 的負值。
$a + $b 加法 $a 和 $b 的和。
$a - $b 減法 $a 和 $b 的差。
$a * $b 乘法 $a 和 $b 的積。
$a / $b 除法 $a 除以 $b 的商。
$a % $b 取模 $a 除以 $b 的餘數。

除號(“/”)總是返回浮點數,即使兩個運算數是整數(或由字串轉換成的整數)也是這樣。

賦值運算元
基本的賦值運算元是“=”。一開始可能會以為它是“等於”,其實不是的。它實際上意味着把右邊運算式的值賦給左邊的運算數。

這裡提供一個最簡單的應用:

  1. <?php  
  2. $b 4;  
  3. <br />  
  4. $a $b 5// $a 為 9,而 $b 為 4  
  5. echo $a;    //列印變數$a  
  6. ?>


在基本賦值運算元之外,還有適合於所有二元算術,陣列集合和字串運算元的“組合運算元”,這樣可以在一個運算式中使用它的值並把運算式的結果賦給它,例如:

  1. <?php  
  2. $a 3;  
  3. $a += 5// 累加後$a 結果為 8, 同樣與 $a = $a + 5 相同;  
  4. echo $a;  
  5. echo '';  
  6. $b "Hello ";  
  7. $b .= "There!"; // 列印結果為 "Hello There!", 同樣與 $b = $b . "There!" 相同;  
  8. echo $b;</p>  
  9. <p>  
  10. ?>


注意:賦值運算將原變數的值拷貝到新變數中(傳值賦值),所以改變其中一個並不影響另一個。這也適合於在很密集的迴圈中拷貝一些值例如大陣列。自 PHP 4
起支援引用賦值,用 $var = &$othervar; 語法,但在 PHP 3
中不可能這樣做。引用賦值意味着兩個變數都指嚮同一個資料,沒有任何資料的拷貝。

比較運算元
 
例子 名稱 結果
$a == $b 等於 TRUE,如果 $a
等於 $b。
$a === $b 全等 TRUE,如果 $a
等於 $b,並且它們的類型也相同。(PHP 4 引進)
$a != $b 不等 TRUE,如果 $a
不等於 $b。
$a <> $b 不等 TRUE,如果 $a
不等於 $b。
$a !== $b 非全等 TRUE,如果 $a
不等於 $b,或者它們的類型不同。(PHP 4 引進)
$a < $b 小與 TRUE,如果 $a
嚴格小於 $b。
$a > $b 大於 TRUE,如果 $a
嚴格 $b。
$a <= $b 小於等於 TRUE,如果 $a
小於或者等於 $b。
$a >= $b 大於等於 TRUE,如果 $a
大於或者等於 $b。

如果比較一個整數和字串,則字串會被轉換為整數。如果比較兩個數字字串,則作為整數比較。此規則也適用於
switch 陳述式。

提供簡單的範例:
  1. <?php  
  2. $a 1;  
  3. $b 5  
  4. if($a<$b){  
  5.    echo '變數$a小於變數$b';  
  6. }<p>$c 5;  
  7. //判斷變數相等的時候要用雙等號  
  8. if($c==$b){  
  9.    echo '變數$c等於變數$b';  
  10. }  
  11. $d 8;  
  12. if($d<$b){  
  13.    echo '變數$d小於變數$b';  
  14. }else{  
  15.    echo '變數$d大於變數$b';  
  16. }  
  17. ?>



錯誤控制運算元
PHP 支援一個錯誤控制運算元:@。當某些程式會產生意外的錯誤時可以將@防止在應用前時任何錯誤資訊都被略過掉。

提供簡單的範例:

  1. <?php  
  2. /* 略過file函式錯誤 */  
  3. $my_file = @file ('non_existent_file') or die ("沒有找到開啟的檔案");  
  4. // 如果這個陣列的變數不存在可以略過掉錯誤資訊  
  5. $value = @$cache[$key];  
  6. ?>


遞增/遞減運算元
 

例子 名稱 效果
++$a 前加 $a 的值加一,然後返回 $a。
$a++ 後加 返回 $a,然後將 $a 的值加一。
--$a 前減 $a 的值減一, 然後返回 $a。
$a-- 後減 返回 $a,然後將 $a 的值減一。

一個簡單的範例指令檔:

  1. <?php  
  2. echo '<h3>範例1</h3>';  
  3. $a 5;  
  4. echo '結果為 5: ' $a++ . '';  
  5. echo '結果為 6: ' $a '';  
  6. <br />  
  7. echo '<h3>範例2</h3>';  
  8. $a 5;  
  9. echo '結果為 6: ' . ++$a '';  
  10. echo '結果為 6: ' $a '';  
  11. <br />  
  12. echo '<h3>範例3</h3>';  
  13. $a 5;  
  14. echo '結果為 5: ' $a-- . '';  
  15. echo '結果為 4: ' $a '';  
  16. <br />  
  17. echo '<h3>範例4</h3>';  
  18. $a 5;  
  19. echo '結果為 4: ' . --$a '';  
  20. echo '結果為 4: ' $a '';  
  21. ?>




陣列運算元

例子 名稱 結果
$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

+ 運算元把右邊的陣列附加到左邊的陣列後麵,但是重複的鍵值不會被覆蓋。

一個簡單的範例指令檔:

  1. <?php  
  2. $a = array("a" => "apple", "b" => "banana");  
  3. $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");  
  4. $c = $a + $b; // 組合變數 $a 與 $b  
  5. echo '<pre>組合變數 $a 與 $b:';  
  6. var_dump($c);  
  7. $c = $b + $a; // 組合變數 $b 與 $a  
  8. echo '組合變數 $b 與 $a:';  
  9. var_dump($c);  
  10. $c = $b + $a; // 組合變數 $b 與 $a  
  11. echo '組合變數 $b 與 $a:';  
  12. var_dump($c);  
  13. ?>

列印結果:

組合變數 $a 與 $b:
array(3) {
["a"]=> string(5) "apple"
["b"]=> string(6) "banana"
["c"]=> string(6) "cherry"
}

組合變數 $b 與 $a:
array(3) {
["a"]=> string(4) "pear"
["b"]=> string(10) "strawberry"
["c"]=> string(6) "cherry"
}

技術考試

上一篇

下一篇

喜騰培訓

站內新聞

我要啦免费统计