写程序时,我了省时间,省空间。我们对一个变量运行后,不再新建变量存储运算结果,直接赋值给该变量自身,这样很容易操作。特别是早期写PHP代码,在PHP代码中混入HTML语法,多行拼接的情况下,就会使用类似如下的方式:
上面代码取自某国产开源商城代码。为了拼接查询语句,$where在不同的case内,拼接不同的查询条件。
下面我们使用代码实例,演示一下操作结果:
代码如下:
/** * ------------------------------------------------ * 下面是运算和赋值操作 * ------------------------------------------------ */ $a = 1.542e-4; $b = pow(2,5); echo "a = " . $a . ", b = " . $b, "<br/>"; $b += 0.54; echo "b = " . $b, "<br/>"; $b -= 7.5; echo "b = " . $b, "<br/>"; $b *= mt_rand(1,10); echo "b = " . $b, "<br/>"; $b /= 5; echo "b = " . $b, "<br/>"; $b %= 3; echo "b = " . $b, "<br/>"; // 自动转换为字符串 $b .= " - toString"; echo "b = " . $b, "<br/>";
在浏览器内访问 www.array.com/chapter1.5.php 得到如下结果:
注意,最后的 .= 操作符,是字符串连接。PHP将$b自动转换为字符串,并与右侧字符串拼接起来。这里面,有一个数据类型转换。
一切程序都要进行逻辑判断,无论是面向过程变成,拟或面向对象编程,条件判断散落在程序的角角落落,像空气一样,如影随形。
如果,想要把程序内的if...else...语句完全清除,几乎要使用更为高级的设计模式,以及系统重构。
初学者,本着思路走,先写一写if...else...的判断语句吧。
下面我们演示一下PHP中逻辑操作符。
代码如下:
/** * ------------------------------------------------ * 下面是逻辑操作符 * ------------------------------------------------ */ $a = 65; $b = 47; if ($a == $b) echo "a等于b", "<br/>"; if ($a != $b) echo "a不等于b", "<br/>"; if ($a === $b) echo "a全等于b", "<br/>"; if ($a !== $b) echo "a不全等于b", "<br/>"; if ($a <> $b) echo "a不等于b", "<br/>"; if ($a > $b) echo "a大于b", "<br/>"; if ($a < $b) echo "a小于b", "<br/>"; if ($a >= $b) echo "a大于等于b", "<br/>"; if ($a <= $b) echo "a小于等于b", "<br/>"; // 还有一个重量级的,太空船操作符 // 左边 > 右边,返回 1 // 左边 = 右边,返回 0 // 左边 < 右边,返回 -1 switch ($a <=> $b) { case 1: echo "a大于b", "<br/>"; break; case 0: echo "a等于b", "<br/>"; break; case -1: echo "a小于b", "<br/>"; break; }
大于,小于,等于,不等于,基本很多编程语言相同,没什么说的。
上面演示的是两个数据类型相同的整数值的比较,如果不同类型的数据进行比较,PHP会按照约定规则进行数据类型转换。可参考官网章节。
特别说明的是“太空船操作符”,可以返回孰大孰小,或者等于。上面实例,使用了switch...case...选择分支结果,进行结果展现。读者可不必着急,下面一小节,就要将这个了。
同样地,在浏览器访问 www.array.com/chapter1.5.php ,可得以下结果:
读者可以根据上面的表达式,依次核对,那个逻辑条件执行了,那个没执行。