在所有電腦程式語言的領域,布林值(boolean)都是程式控制不可或缺的利器;PHP也不例外
布林值只有兩種可能的值,分別是「true」以及「false」這兩個關鍵字
我們雖然可以在程式碼中直接使用這兩個關鍵字來產生布林值,但是,大多數情況下...
布林值大都是由程式語言的關係運算子(relational operator)進行資料的比較運算後產生
【當然,還有一些程式語言的內建函數(function)也會回傳布林值,這些日後再詳細說明】
PHP的關係運算子有 9 個;它們比較其左右兩側的資料後,產生一個結果的布林值
茲將PHP的關係運算子以及比較運算式的運算結果,以下圖示範說明,請逐一加以瞭解
(關係運算子的比較運算結果將涉及程式語言的資料型態以及資料轉換規則,另篇再詳述)
如果學員有興趣,可以把以下的示範程式碼複製後貼到「記事本」中,存成 .php 的檔案...
然後上傳到你的範例練習網站上,再以瀏覽器請求執行,就可以看到相關的結果啦!
=====================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<body>
<?php
$a = 100; $b = "100"; $x = 100.0; $y = "100.0";
$wds = " 比較運算的結果是: ";
$yes = '<font color="red"><strong>true</strong></font>';
$no = '<font color="blue"><strong>false</strong></font>';
echo '當 $a = 100 , $b = "100" , $x = 100.0 , $y = "100.0" 時';
echo "<p> </p>";
echo "<p>" . '$a == $b' . $wds . ($a == $b ? $yes : $no) . "</p>";
echo "<p>" . '$a == $y' . $wds . ($a == $y ? $yes : $no) . "</p>";
echo "<p>" . '$a == 99.9' . $wds . ($a == 99.9 ? $yes : $no) . "</p>";
echo "<p>" . 'true == false' . $wds . (true == false ? $yes : $no) . "</p>";
echo "<p>" . '$a === 100' . $wds . ($a === 100 ? $yes : $no) . "</p>";
echo "<p>" . '$a === $a' . $wds . ($a === $a ? $yes : $no) . "</p>";
echo "<p>" . '$a === $b' . $wds . ($a === $b ? $yes : $no) . "</p>";
echo "<p>" . '$a === $y' . $wds . ($a === $y ? $yes : $no) . "</p>";
echo "<p>" . '$a != 101' . $wds . ($a != 101 ? $yes : $no) . "</p>";
echo "<p>" . '$a != "abc"' . $wds . ($a != "abc" ? $yes : $no) . "</p>";
echo "<p>" . '$a <> 101' . $wds . ($a <> 101 ? $yes : $no) . "</p>";
echo "<p>" . '$a <> ""' . $wds . ($a <> "" ? $yes : $no) . "</p>";
echo "<p>" . '$a != 100' . $wds . ($a != 100 ? $yes : $no) . "</p>";
echo "<p>" . '$a <> $x' . $wds . ($a <> $x ? $yes : $no) . "</p>";
echo "<p>" . '$a !== $b' . $wds . ($a !== $b ? $yes : $no) . "</p>";
echo "<p>" . '$a !== $x' . $wds . ($a !== $x ? $yes : $no) . "</p>";
echo "<p>" . '$a !== 100' . $wds . ($a !== 100 ? $yes : $no) . "</p>";
echo "<p>" . '$a !== $a' . $wds . ($a !== $a ? $yes : $no) . "</p>";
echo "<p>" . '101 > $a' . $wds . (101 > $a ? $yes : $no) . "</p>";
echo "<p>" . 'true > false' . $wds . (true > false ? $yes : $no) . "</p>";
echo "<p>" . '$a > 100' . $wds . ($a > 100 ? $yes : $no) . "</p>";
echo "<p>" . '$y > $a' . $wds . ($y > $a ? $yes : $no) . "</p>";
echo "<p>" . '$a >= $x' . $wds . ($a >= $x ? $yes : $no) . "</p>";
echo "<p>" . '$y >= $a' . $wds . ($y >= $a ? $yes : $no) . "</p>";
echo "<p>" . '-101 >= $a' . $wds . (-101 >= $a ? $yes : $no) . "</p>";
echo "<p>" . '"0" >= $y' . $wds . ("0" >= $y ? $yes : $no) . "</p>";
echo "<p>" . '"abc" < 1' . $wds . ("abc" < 1 ? $yes : $no) . "</p>";
echo "<p>" . '$b < "abc"' . $wds . ($b < "abc" ? $yes : $no) . "</p>";
echo "<p>" . '"b" < "abc"' . $wds . ("b" < "abc" ? $yes : $no) . "</p>";
echo "<p>" . '0 < "abc"' . $wds . (0 < "abc" ? $yes : $no) . "</p>";
echo "<p>" . '0 <= "abc"' . $wds . (0 <= "abc" ? $yes : $no) . "</p>";
echo "<p>" . '" " <= "abc"' . $wds . (" " <= "abc" ? $yes : $no) . "</p>";
echo "<p>" . '" " <= ""' . $wds . (" " <= "" ? $yes : $no) . "</p>";
echo "<p>" . '1 <= "abc"' . $wds . (1 <= "abc" ? $yes : $no) . "</p>";
?>
</body>
</html>
===================================================
如果你連這個都懶,那就看看我的PHP示範網頁吧!
我們都學過數值的加、減、乘、除運算;運算後的結果是什麼資料?...還是數值,對吧!
布林值雖然只有「true」、「false」兩種值,但是,不幸地,也可以進行進一步的運算
布林值的運算...通常稱為邏輯運算,需要仰賴程式語言的邏輯運算子(logical operator)進行
PHP常用的邏輯運算子有 3 個;分別是 && (或 AND)、|| (或 OR)、! (或 NOT)
【PHP也支援 XOR (互斥) 邏輯運算子,但因可經由前述3種的運算加以取代,故不詳述】
此三種邏輯運算子以及相關布林值運算的結果,我們再以圖解說明如下:
「true」、「false」兩個看似簡單的所謂「布林值」,變化其實非常可觀...就像算數一樣
布林值控制了程式軟體的一切動作與反應,如果不將它們弄清楚,那...麻煩就大了!
這不只是PHP,基本上,所有程式語言都是如此!所以囉,不能頭痛蛤~慢慢習慣它!
PHP的技術就是要提供一些可以在網路上執行的所謂「網路應用程式 _ Web Application」
既然有心學,那麼,大家加油蛤~好好地把「布林值」以及「邏輯運算」仔細研究一下...

所有程式語言,資料的型態(Data Type)不外乎是 數值、文字、時間、布林 四大類
PHP除了布林值以 true 、 false 表示外....(布林值的關鍵字不分大小寫...但不可拼錯)
數值資料則和其他程式語言一樣,直接以一般數字(如 12.3)或科學記號(如 0.123e2)表示
當然,如果你的前世是章魚之屬的話,歡迎用八進位(如 053)或十六進位(如 0x2B)表示43
(只不過,八進位或十六進位只能用在整數而已,遇上小數就沒輒。)
文字資料是在資料前後加單引號 ' 或雙引號 " 標示,例如 '123.4' 、"abcde"各代表五個文字
至於時間資料,基本上也是數值,只不過呈現時會加以格式化成特定的日期時間型式而已
在PHP中,時間資料與 date() 函數息息相關,待介紹PHP函數時再加以解說...
老師
範例練習中有個比較運算結果,腦筋還是轉不過來
" " <= "" 比較運算的結果是: false
根據老師在《資料比較運算中》所說
比較字串的大小時,由第一個文字先比較,第一個字相同時再比較第二個字...依此類推
(space空白) < "
那," " <= "" 比較運算的結果不是: true 嗎?
[版主回覆09/26/2006 15:17:13]顯然你很用心看... ...嘿~嘿...那就有福了!
"" 是兩個連續的雙引號... ...是個特殊的資料,一般稱為「空字串」
兩個連續的單引號 '' 也是一樣... ...它們跟含有一個空白的 " " 不同
( '' 是一個雙引號或兩個單引號,決定在...妳怎麼在鍵盤上打的
)
空字串是字串資料,但其中啥都沒有,是最小的字串資料
您所謂的
空字串是字串資料,但其中啥都沒有,是最小的字串資料
是否就是ASCII碼編號0的資料 NULL (沒資料)?
[版主回覆09/26/2006 16:51:21]其實也不是,NULL是啥東西都不是...空字串,卻是個空無一物的字串
NULL值常見於資料表的欄位值中...如果你未曾輸入任何資料給它的話
補充說明
剛轉貼的月餅來源所屬網頁
http://big5.xinhuanet.com/gate/big5/www.hn.xinhua.org/2005-09/14/content_5126201.htm
[版主回覆09/28/2006 17:00:34]我們在網頁上選取、複製的....其實,就是一堆HTML的內容
當你將它貼到部落格的文章或或回應中時,其實就是貼上HTML的文字
(這種方式,如果它的圖片是使用相對路徑的話,那,圖片保證跑不出來)