第九課:PHP中的運算
你的網站裏有大量的文章資料供讀者閱讀,成千上萬文章的標題列表不可能全部放在一個網頁中吧,我們會分成一頁一頁供讀者查看。一共有多少個文章標題,每頁顯示多少個標題,一共要分成多少頁來顯示,這些總離不開計算吧。還記得學校裏學到的基本數學知識嗎?就和它們一樣。PHP中的計算可比你的小學數學簡單得多,不就是加減乘除嗎?
先看看PHP中有哪些運算符:
表:算術運算符
$a + $b | 加法 | $a 和 $b 的和。 |
$a - $b | 減法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的積。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的餘數。 |
除號(“/”)總是返回浮點數,即使兩個運算數是整數(或由字符串轉換成的整數)也是這樣。表達式 1 + 5 * 3 的結果是 16 而不是 18 是因爲乘號(“*”)的優先級比加號(“+”)高。必要時可以用括號來強制改變優先級。例如:(1 + 5) * 3 的值爲 18。
再看一些例子9-1:
$a = 5;
$b = 3;
$c = 2;
$x = $a + $b -$c;
$y = $a * ($c + $b);
$z = ($a + $b)/$c;
$m = 50 - $a * $b;
$n = 100 * $c % $b;
echo "X的值是 $x<br>Y的值是 $y<br>Z的值是 $z<br>M的值是 $m <br>N的值是 $n<br>";
//你能說出上面的輸出結果嗎?
?>
$a = 3;
$b = 5;
echo $a + $b; //可以這樣直接在echo後使用表達式,輸出結果爲8
echo "a+b的值是:".$a + $b;
//你以爲還是8嗎?錯,結果是5(即$b的值)。
//加號前面是一個字符串,字符串轉換成數字時都變成了0。
?>
$a = 3;
$b = 5;
$a += 5; //$a的值是8,這個表達式等同於: $a = $a + 5;
$b -= 3; //$b的值是2,這個表達式等同於: $b = $b - 3;
echo $a.'<br>'.$b;
?>
$a = ( $b = 5 ) + 3;
echo "a的值是:".$a."b的值是:".$b;
//括號中先給$b賦值5,然後加3後賦值給$a,所以$a的值是8。
//PHP真是太自由了,變量無須事先聲明,賦值也可以隨時進行,想怎麼做就怎麼做。
?>
上面的運算也許你在編程時用得不多,但是對一個數自加一或自減一是經常用到的,PHP 支持 C 風格的前/後加一與減一運算符。
表:加一/減一運算符
++$a | 前加 | $a 的值加一,然後返回 $a。 |
$a++ | 後加 | 返回 $a,然後將 $a 的值加一。 |
--$a | 前減 | $a 的值減一, 然後返回 $a。 |
$a-- | 後減 | 返回 $a,然後將 $a 的值減一。 |
例子9-5:
echo "<h3>後增</h3>";
$a = 5;
echo "值是 5: " . $a++ . "<br /> ";
echo "值是 6: " . $a . "<br /> ";
echo "<h3>前增</h3>";
$a = 5;
echo "值是 6: " . ++$a . "<br /> ";
echo "值是 6: " . $a . "<br /> ";
echo "<h3>後減</h3>";
$a = 5;
echo "值是 5: " . $a-- . "<br /> ";
echo "值是 4: " . $a . "<br /> ";
echo "<h3>前減</h3>";
$a = 5;
echo "值是 4: " . --$a . "<br /> ";
echo "值是 4: " . $a . "<br /> ";
?>
上面的例子中用到了“/n”,表示換行,而"/r"表示回車,所以你會經常在一些源碼中看到“/r/n”(你可以看第七課中有關轉義字符)。網頁效果中的換行用<br>或<br />。
PHP中的運算是不是很簡單呢?的確,我們只要多記住一些東西,熟練了也會成爲PHP高手。要記住這些雜七雜八的東西也就只有靠多動手練習了。