第四课 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"
}

技术考试

上一篇

下一篇

喜腾培训

站内新闻

我要啦免费统计