溫瑞烘老師的教學歷程檔案(Teaching ePortfolio) - 102-1--物件導向程式設計 - 第2週講義-PHP資料型態與運算式
 

資訊管理系
副教授
温瑞烘


歷程檔案 Portfolio


關於我 About Me

第2週講義-PHP資料型態與運算式

PHP的資料型態

本文引自http://pydoing.blogspot.tw/2012/10/php-tutorial.html

PHP 支援八種基本型態 (primitive type),這八種分別是

布林 (boolean)

整數 (integer)

浮點數 (floating point number)

字串 (string)

陣列 (array)

物件 (object)

資源 (resource)

NULL

 

基本上程式 (program) 會自動判斷變數 (variable) 的資料型態 (data type) PHP 的變數寫法就比較特別一點,用金錢符號 $ 開頭,其後可接英文字母,如下 $b 為布林型態, $i 為整數型態, $f 為浮點數型態, $s 為字串型態

$b = True; // 布林型態

$i = 1234; // 整數型態

$f = 12.3; // 浮點數型態

$s = "12"; // 字串型態

 

布林型態只有兩種常數 True False ,整數是不含小數點的數字,浮點數則是包含小數點的數字,字串為雙引號圍起來的任意字元。陣列就比較複雜一點,因為陣列分成兩部份,第一部分為索引,第二部份則是資料,兩者可以是上面四者型態任一,資料還可以是其他的陣列,例如

 

$a1 = array(10, 20, 30, 40);

$a2 = array(

       1 => 100,         // 索引為1 值為100

"A" => 33.06,     // 索引為"A" 值為33.06

"1" => "Tony",    // 索引為"1" 值為"Tony"

);

 

建立陣列需要用到內建函數(function) array(),索引與資料放在參數列 (parameter list) ,若無提供索引,如 $a1 ,索引會自動由 0 遞增填補,因此存取 $a1 如下

echo $a1[0];     // 顯示10、注意:位置由0開始

echo $a1[1];     // 顯示20

echo $a1[2];     // 顯示30

echo $a1[3];     // 顯示40

陣列變數後面緊接中括號,中括號裡面則放索引值。

 

當然,如果有提供索引,存取陣列的元素就得依據索引值

echo $a2[1];         // 顯示100

echo $a2["A"];       // 顯示33.06

echo $a2["1"];       // 顯示Tony

 

物件則是自訂的類別 (class) ,我們稍後才會完整介紹。至於資源及 NULL 為兩個特別的資料型態,前者為外部的參考,例如文件、資料庫 (database) 等等,後者則表示什麼都不是,當有特殊需要的時候便可指派變數為 NULL 。變數是個很重要概念,因為變數可依需要賦予不同的值。接下來,我們來看看變數命名規則吧!

 

PHP的變數命名規則

 

PHP 的變數 (variable) 由金錢符號 $ 開頭,其後可接底線、英文大小寫字母或數字,但數字不可以接在金錢符號之後,下面這些都是合法的變數名稱:

$variable_name;

$_code; $CODE;

$_1234;

$a1234;

$some;

$Some;

須注意一點,英文大寫與小寫對變數名稱來說是不一樣的,因此 $some $Some 是兩個不同的變數。

 

有一個特別的變數名稱 $this ,用在類別定義中,不能當成自行定義的變數名稱。

 

總括來說,變數名稱為識別字 (identifier) 的一種,其他函數 (function) 、類別 (class) 、屬性 (property) 、方法 (method) 等名稱也都屬於識別字,依循同樣的命名規則。

 

依命名習慣,類別或物件 (object) 變數常用大寫駝峰型 (upper camel case)

 

class ClassName {} // 類別名稱

$NewObject = new ClassName; // 物件變數名稱

類別中的屬性與方法常用小寫駝峰型 (lower camel case)

public $propertyName;  // 屬性名稱

public function methodName() {} // 方法名稱

 

函數及變數則多以英文小寫單字,或由底線符號連結多個英文小寫單字為主。然而命名仍是以開發團隊沿襲的習慣為主,只要合乎命名規則的都可以當成識別字。

 

當然,識別字 (keyword) 具有特殊功能,因此識別字不能當作識別字名稱,另外 PHP 還有很多預先定義的名稱,如全域變數、內建函數等,我們自己定義的名稱最好避免與這些名稱相同。

 

有沒有發現每一行程式都要以分號結尾,若是漏打分號的話,程式就無法執行。分號代表什麼意思呢?有分號結尾的程式碼,在 PHP 稱之為陳述 (statement) ,簡單的陳述可由運算式 (expression) 組成,接下來我們來看看運算式與陳述吧!

 

PHP的運算式與陳述

運算式 (expression) 由運算元 (operand) 與運算子 (operator) 所組成,依運算元的數量,運算式可以簡單分為下列三種:單一個運算元,兩個運算元,三個運算元。

 

單一運算元就構成一個運算式,運算元可以是變數(variable) 、常數(literal)、或呼叫函數 (function) ,例如

$a;          // 以變數當運算元

3;           // 以常數當運算元

echo "\n";  // 使用關鍵字

 

運算式,顧名思義,其為運算出一個結果的式子,因此單一運算元的運算式所得到的結果就是運算元的值,如果是函數方法呼叫,就是函數的回傳值 (return value)。單一運算元也可以結合單元運算子,單元運算子有

運算子

功能

範例

+

+$a

-

-$a

++

遞增

++$a, $a++

--

遞減

--$a, $a--

!

邏輯補數運算子

!$a

 

正負如同一般數學表示正負值一樣,同樣的,負負會得正

$a = -3; $b = +$a; // $b 會等於 -3 $c = -$a; // $c 會等於 3

遞增、遞減則是會將整數變數遞增 1 或遞減 1 ,有前後之別

$a = 3; $b = ++$a; // $b 會等於 4

$c = $a++;         // $c 會等於 4

$d = --$a;         // $d 會等於 4

$e = $a--;         // $e 會等於 4

 

邏輯補數運算子會把 True 變成 False False 變成 True

$a = True; $b = !$a; // $b 會等於 False

$c = !$b;            // $c 會等於 True

 

一般運算子都須結合兩個運算元,例如算術運算子 (arithmetic operator) ,可用在整數 (integer) 及浮點數 (floating-point number) ,計算結果也為整數或浮點數

運算子

功能

範例

+

$a + $b

-

$a - $b

*

$a * $b

/

$a / $b

%

取餘數

$a % $b

 

例如

$a = 11; $b = $a + 33; // $b 會等於 44

$c = $b - 22;          // $c 會等於 22

$d = $c * 11;          // $d 會等於 242

$e = $d / 44;          // $e 會等於 5.5

$f = $e % 55;          // $f 會等於 5

 

相等性及關係運算子 (equality and relational operator) ,可用於整數及浮點數或布林值 (Boolean value) ,計算結果不是 True 就是 False

運算子

功能

範例

==

相等

$a == $b

!=

不相等

$a != $b

> 

大於

$a >= $b

>=

大於等於

$a >= $b

< 

小於

$a < $b

<=

小於等於

$a <= $b

 

例如

$a = 11; $b = 22; $c = $a >= $b; // $c 會等於 False

$d = $a <= $b;                   // $d 會等於 True

$e = $c == $d;                   // $e 會等於 False

$f = $a != $b;                   // $f 會等於 True

 

我們運用的等號,其實屬於指派運算子 (assignment operator) ,所謂的指派是把等號右邊的值給左邊的變數

 

運算子

功能

範例

=

指派

$a = $b

+=

相加同時指派

$a += $b ($a = $a + $b)

-=

相減同時指派

$a -= $b ($a = $a - $b)

*=

相乘同時指派

$a *= $b ($a = $a * $b)

/=

相除同時指派

$a /= $b ($a = $a / $b)

%=

取餘數同時指派

$a %= $b ($a = $a % $b)

 

例如

$a = 11;

$a += 33;          // $a 會等於 44

$a -= 22;          // $a 會等於 22

$a *= 11;          // $a 會等於 242

$a /= 44;          // $a 會等於 5.5

$a %= 55;          // $a 會等於 5

 

有沒有看的眼花撩亂?居然有 $f = $a != $b 之類的式子出來,這是因為運算子有計算的優先次序 (precedence) ,由於 != 的優先順序在 = 之前,所以 $a != $b 會先被計算,結果才會指派到 $f 之中。如果不是很清楚各個運算子的優先次序,保險一點的做法可以用小括弧,先把要先被計算的運算式圍起來,例如

$f = ($a != $b); // 等於 $f = $a != $b

這是因為小括弧有最高的優先計算次序。

 

加上分號,運算式就是程式 (program) 中獨立的陳述 (statement) PHP 程式的執行單位就是陳述,由前而後,一個陳述接著一個陳述來執行。陳述也有好幾種,最簡單的陳述就是單一個分號

; // 什麼事也不做的陳述

 

練習:PHP程式,完成下列練習
例如: echo "a + b = " . $a + $b . "<br>";

1. 假設 $a=100; $b=20; 計算下列範例的內容,以echo 輸出

 

運算子

功能

範例

+

$a + $b

-

$a - $b

*

$a * $b

/

$a / $b

%

取餘數

$a % $b

2. 假設 $a=100; $b=20; 計算下列範例的內容,以echo 輸出

運算子

功能

範例

==

相等

$a == $b

!=

不相等

$a != $b

> 

大於

$a >= $b

>=

大於等於

$a >= $b

< 

小於

$a < $b

<=

小於等於

$a <= $b

3. 假設 $a=100; $b=20; 計算下列範例的內容,以echo 輸出

運算子

功能

範例

=

指派

$a = $b

+=

相加同時指派

$a += $b ($a = $a + $b)

-=

相減同時指派

$a -= $b ($a = $a - $b)

*=

相乘同時指派

$a *= $b ($a = $a * $b)

/=

相除同時指派

$a /= $b ($a = $a / $b)

%=

取餘數同時指派

$a %= $b ($a = $a % $b)

4. 前述程式在本地端執行完畢後再上傳至ccs.cust.edu.tw上執行一次

5. 將程式與執行結果postePortfolio

 

 

全部共 0則留言
登入帳號密碼代表遵守學術網路規範
 


文章分類 Labels

 


最新文章 Top10

中華科技大學數位化學習歷程 - 意見反應