PHP簡介, 變數, 常數, 與運算子

Download Report

Transcript PHP簡介, 變數, 常數, 與運算子

PHP 5 入門基礎
•HTML
常用標籤
•第一個PHP
程式語言
•PHP
資料型態
•PHP
程式基礎語法
1
HTML 常用標籤

HTML 是原文 HyperText Markup Language 的縮寫,
中文的解釋是『超文字檔案標記語言』。


HTML 是一種標記語言
標籤可分成兩大類, 一種是屬於成對的標籤, 另一種則是單
一的標籤。
2
HTML 常用標籤









<html></html> :HTML 文件的開始與結束。
<head></head> :網頁的文件資料。
<title></title> :顯示網頁的標題列文字。
<body></body> :在 body 標籤之間所有的內
容才是要顯示在網頁上的內容。
<br> : 分行
<pre> : 排版格式
<hr> : 分隔線
<p> : 分段標籤
<center></center> : 置中
3
HTML 常用標籤
<b></b> : 粗體字
凡是在這個標籤之間的文字都會變成粗體的文字。
 <i></i> : 斜體字
凡是在這個標籤之間的文字都會變成斜體的文字。
 <hn></hn> : 字體的大小
n 是一個介於 1 到 6 之間的數字, 數字越小則字體
越大。
 <a></a> : 超連結
<a href=”http://欲連接到網址”>網站的說明文字
</a>

4
HTML 常用標籤

表格製作
<table>
|----<caption>
|----<tr> ------------------------</tr>
|--<td> … </td>
td
tr
tr
td
<td>…..</td>
td
/tr
/tr
5
HTML 常用標籤





<table></table> : 表格標籤, 表格的宣告及屬性的
設定。
<caption></caption> : 表格標題, 在標籤之間的文
字都會被視為表格的標題列。
<tr></tr> : 表格中的一列, 定義表格中的一列。
<td></td> : 欄位標籤, 定義 1 個欄位。
<th></th> : 標題欄位標籤, <th> 標籤的功能與
<td> 是相同的, 唯一不同的是 <th> 適用於標題欄
位, 例如範例 5-8 第 6 行定義二個標題欄位, 所以
欄位資料字型都是以粗體並且置於欄位中央表示。
6

表格範例
<html>
<title>表格範例</title>
<body>
<table border=3>
<tr><td>第一列第1欄</td><td>第一列第2欄</td><td>第一列第3欄</td</tr>
<tr><td>第二列第1欄</td><td>第二列第2欄</td><td>第二列第3欄</td</tr>
<tr><td>第三列第1欄</td><td>第三列第2欄</td><td>第三列第3欄</td</tr>
<tr><td>第四列第1欄</td><td>第四列第2欄</td><td>第四列第3欄</td</tr>
</table>
</body>
</html>
7
HTML 常用標籤

表單製作
Client
 填寫表單
 回應表單
Server
8
HTML 常用標籤

<form></form>
表單中就必須說明伺服器的位置以及資料的傳送
方式。
action : 設定伺服器的位置。
method : 設定傳送方式


第一種方法GET, 他的傳送資料比較少, 一般來說適用於傳送
比較少量的資料。在傳送的時候是以參數的方式傳遞。所以可以藉
由變數直接取得變數的資料。
第二種方法 POST, 這種傳遞的方式, 可以傳送資料較長的內容傳遞。
在伺服器端的程式則必須以標準輸入的方式來取得介面傳入的資料。
<form action=” http://abc.def.com.tw/test.php”
method=“get”>
9
HTML 常用標籤

<input> 輸入型態


name: 設定每一個資料輸入的名稱, 因為所有的資料必
須放入伺服器端, 所以我們必須設定一個名稱一代表輸
入的資料
type : 設定資料輸入的形式, 分別有






文字輸入欄 (text)
密碼欄(password)
單一選擇鈕 (radio)
多重選擇鈕 (checkbox)
按鈕 (button)-reset or submit
<input type=radio name=education value=”高中” />高中
10
HTML 常用標籤


<select>輸入型態
select 標籤是一種下拉式
的選單, 可以在眾多的選項
中選擇一個或多個選項.
格式如下
<select name=”資料名
稱”>
<option value=”回傳值>選
項文字</option>
</select>
11
HTML 常用標籤

textarea文字區塊
輸入大量文字時, 例如留言版, 討論區等等, 就不
適合使用text型態. 此時我們應使用文字區塊.

例:
<textarea name=”資料名稱” rows=”列數” cols=”行數”>
預先出現在文字區中的文字
</textarea>
12
第一個PHP 程式語言

PHP是寫在 HTML 的原始文件檔案中。 我們已經
介紹 HTML 語言是以標籤為基礎組成一個網頁.
因此我們將 PHP 崁入在 HTML 中, 故必須利用特
殊的標籤來區分 HTML 或 PHP 語言。
13
第一個PHP 程式語言
<html>
<title>第一個PHP</title>
<body>
Hello My Friend! <p>
<?php
echo "我的第一個PHP程式 <br />" ;
?>
</body>
</html>
14
第一個PHP 程式語言
PHP 語言注意事項



檔案的副檔名必須為 .php
命令的結束須加上分號 " ; "
PHP 還有四種標籤來表示 PHP 語言。這四種
寫法分別是

1)
2)
3)
4)
<?php PHP語言 ?> (最常用)
<? PHP語言 ?> 需設定 short_open_tags=on
<script language=”php” PHP語言 </script>
<% PHP語言 %> 需設定 asp_tags=on
15
四種 php標籤
16
第一個PHP 程式語言

PHP 註解方式 (類似C 語言)



PHP 輸出指令



// or #: 適用於「單行註解」
/* …*/: 適用於「多行註解」
echo() 和 print()  相同功用
PHP語法出現位置無限制
PHP 語法大小寫不同

例如 $myVar 與 $myvar 因為其中的字母 V 與 v 不同,
即代表不同的變數。
17
PHP 變數命名原則
1.
2.
3.
4.
5.
在 PHP 中變數的命名必須以「$」符號做為開頭,之
後再加上變數名稱所組成的。
一個有效的變數內容是由英文字母或「_」底線符號
開始,接著是任意長短的文字字元、數字或底線。
特別要注意的是第一個字元不可以使用數字,當然不
可以中文來進行命名。
變數名稱是有英文大小寫之分的,例如 $myVar 與
$myvar 就會被視為不同的變數。
變數不能使用保留字當作變數名稱。
18

PHP 變數、常數、類別名稱命名應避免使
用「保留字」
19
3.2.3 全域變數與區域變數
全域變數
(global variable):在整個程式中都能讀取並使用
變數的值,我們稱為。
區域變數
(local varialbe):僅能在函式的區域中使用,如應
用在函式 (function) 中的變數。
在
PHP 的程式中,全域變數的有效範圍僅限於主要程式
中,不會影響到函式中同名的變數,也就是全域變數與區域
變數互不侵犯。若要變數能由主要程式的範圍通透到函式中,
就要將變數進行全域的宣告。
20
3.2.4 預設變數的使用
提供了大量的預
設變數。這些變數的內
容包含了來自伺服器環
境、及使用者輸入的變
數。在使用上,預設變
數皆為全域變數,能在
主要程式中任何地方使
用。
以下是各種常見的預設
變數:
PHP
21
3.3 常數的使用
3.3.1
定義常數
常數定義的方式
在
PHP 中可以使用下列的函式來定義常數:
define (常數名稱, 常數值 [,大小寫是否區分])
常數的特性
常數與變數其實在使用上大同小異,但是常數在使用上最特別
的地方有下列幾點:
1.常數名稱並不需要加上「$」符號。
2.常數只能使用
define() 函式進行定義。
3.常數的值只接受標量型別 (布林值、整數、浮點數 、字串) 的資料型
別。
4.常數不受有效範圍的限制。
5.常數在整個程式中僅能定義一次,也不能取消定義。
6.常數一經定義即不能更改,也不能進行計算。

22
3.3.2 預設常數
在
PHP 程式中可以使用預設常數即得執行中程式碼或
PHP 的相關資訊。以下是預設常數:
23
3.4 資料型別
在
PHP 中定義變數時並不需要設定資料型別,只需
要指定該變數的值,在編譯時 PHP 會根據設計者指定
的變數值自動判定或是轉換資料的型別。一般來說,
設計者可以使用等於 (=) 符號來指派變數的值,而且會
以最後一次定義或是經過運算、組合後的值為該變數
的值。
24
3.4.1 布林值 (boolean)
布林值又稱為邏輯型別,當變數資料的值只有是
(True)、
否 (False) 二種選擇時,通常應用在判斷某些狀況是否成立。
在 PHP 程式中布林值的結果不分英文大小寫,ture、True、
或 TRUE 都表是,而flase、False 、或 FALSE 都代表否。
布林值可以轉換為其他的資料型號:若轉換為數值時,
True 值為 1,False 值為 0;若轉換為字串時,True 值為
"1",False 值為 "0"。
25
3.4.2 整數 (integer) 與浮點數 (float)
關於整數
整數為不包含小數的數值,其數值範圍可是以正整數、零
及負整數。在 PHP 中整數資料型別的大小範圍是依作業系
統而定,以 32 位元的環境來看,整數的資料範圍為 2,147,483,648 ~ 2,147,483,647。((231)~-(231-1))
關於浮點數
浮點數為包含小數的數值或實數,在 PHP 中的資料大小
也是依作業系統而定,以 32 位元的環境來看,整數的資料
範圍為 1.7E-308 ~ 1.7E+308。
26
3.4.3 字串 (string)
字串是由字母、數字、文字、符號所組合而成,在
PHP
程式中可以使用下列 3 種方法來表示字串:
1.以單引號
( ' ) 表示:在字串的前後加上單引號 ( ' ),所包
含的內容即為字串。
2.以雙引號
( " ) 表示:在字串的前後加上雙引號 ( " ),所包
含的內容即為字串。
3.以定界符號
(heredoc) 表示:在字串的前後加上自行定義
的定界符號,所包含的內容即為字串。
27
PHP 字串型態 (STRING)

字串有二種常用的表示方式,



第一種方式是將文字串以二個雙引號前後括起來。
第二種方式是將文字串以二個單引號前後括起來。
單、雙引號差異


雙引號:字串中會顯示變數的內容.
單引號:字串中的變數不會顯示變數的內容
28
<?php
echo "ECHO say hello!! <br />";
print "PRINT say hello!! <br />";
print ("PRINT say how are you ?<br />");
$msg="I am fine." ;
echo "ECHO say $msg and you? <br />" ;
print "PRINT say $msg thank you. <br />";
echo "<hr width=50%>";
echo "1: msg變數的內容是 $msg <br />";
echo '2: msg變數的內容是 $msg <br />' ;
echo $msg ;
?>
29
3.4.4 其他型別
1.
2.
3.
4.
陣列 (array):當有大量的資料要放置在變數時,利用陣列是
一個很好的選擇。
物件 (object):在 PHP 中可以利用類別 (class) 創造物件,
物件可以視為是一個容器,這個容器包含了與該物件相關的
變數與函數。
資源 (resource):資源通常是利用特殊的函數所傳回代表該
資源的值。因為資源型別的變數,其值建構的方法包含了如
檔案處理、資料庫處理或繪圖處理等動作的內容,所以是無
法由其他的資料型別轉換而來。
空值 (NULL):當想將變數的內容歸零或是清除時,常會將
其值賦予一個空值。
30
PHP 資料型態

陣列型態(ARRAY)
陣列的語法如下
$陣列名稱[指標]
 設定初始值方式

(1) $a[0] = 0 ;
$a[1]=10 ;
$a[2]=20 ;
$a[3]=30;
(2) $a=array(0, 10, 20, 30);

亦可有多維陣例,如:三維、四維陣列
31
PHP 資料型態

物件型態 (OBJECT)

一個新的資料型態稱之為類別在類別中定義:



物件的資料成員 (Data Member),代表物件的屬性。
物件的成員函數 (Member Function), 代表物件的操作模式。
類別語法如下
class 類別名稱 {
var 資料成員;
function 成員函數(){
成員函數內容
}
}
32

類別範例
<?php
class table {
var $color ;
function set_color($new_color){
$this->color=$new_color ; }
function show_color() {
echo $this->color;
echo "<br />\n" ; }
}
?>
<html>
<title>物件</title>
<body>
<?php
$T=new table() ;
$D=new table() ;
$T->set_color("Red") ;
$D->set_color("Blue") ;
echo "T table color is " ;
$T->show_color() ;
echo "D table coloe is " ;
$D->show_color() ;
?>
</body>
</html>
33
PHP 資料型態

資源型態 (Resource)
資源型態是一種特殊的資料型態, 不同於之前的資料型態,
資源型態變數是負責維持與外部資源的聯繫.
 例如開啟的一個檔案, 資料庫連線, PDF, 影像等等


例:
MySql 對PHP來說是一個外部資源, 因此當PHP需要操作
資料庫時就必須藉由 PHP 中的 MySql 函數來操作.
$m=mysql_connect(‘localhost’,’root’,’1234’);
34
PHP 資料型態

NULL型態

NULL 也是一個比較特殊的型態. 一個變數如果被設定成 NULL就
表示這個變數裡沒有任何的值.
有三種情形會被認定變數的值為NULL

例:

$n1=NULL;
unset($n2);
echo
$n1;
echo $n2;
echo $n3;
35
3.5 運算子與運算式
在開發
PHP 的程式時,大都是建構一行行的運算式來執
行運算及邏輯判斷的動作,去獲取所需的結果。在這裡將會
對於 PHP 中程式運算的功能做一個詳細的說明。
3.5.1
什麼是運算子與運算式?
在程式設計中必須使用變數或常數儲存或是代表一些資料,
再將這些資料經過邏輯判斷與演算去得到所需的結果,建構
整個流程的內容即是運算式。運算式 是由 運算元 與 運算
子 所組合而成,其中運算子是指運算的方式 (以符號來代
表),運算元是用來運算的資料。
36
3.5.2 字串運算子與指派運算子
字串運算子
在
JavaScript 、 VBScript 或一般的程式語言中,若要連
接多個字串可以使用加號 (+) 或是 (&) 符號來完成。在
PHP 程式語法中必須使用字串運算子「.」執行字串連結的
動作。
指派運算子
在程式設計中需要指定一個值給變數時,就必須使用指派
運算子:「=」。
在 PHP 程式中「=」符號不代表等於,而是將指派運算子
右方的值存入左方的變數中。若右方的內容是一個運算式,
也是在計算出結果後再將值存入左方的變數中。
37
3.5.3 算術運算子
在程式中執行加減乘除的動作,以下是
PHP 的算術運算
子:
38
3.5.4 複合運算子

應用相同的方式,PHP 中常見的複合運算子有:
39
3.5.5 遞增 / 遞減運算子
在
PHP 程式中可以利用遞增 / 遞減運算子達到這樣的效
果:
40
3.5.6 比較運算子
比較運算子會將運算式二邊的運算元加以比較,再將結
果以布林值回傳。
以下是 PHP 中的比較運算子:
41
3.5.7 條件運算子
條件運算子與比較運算子類似,但是除了比較判斷外,
條件運算子會利用比較的結果回傳不同的值。在條件運算
子的結構中,先設定判斷的條件,當條件成立時回傳第一
個運算元,否則回傳第二個運算元。因為條件運算子是使
用「?」、「:」二個符號將運算式區隔為三個部份,其格
式如下:
條件運算式 ? 條件運算式成立時傳回運算式 : 條件運算式不成立時傳回
運算式;
例如: $a>$b ? $c="true" : $d="false" ;
42
3.5.8 邏輯運算子
邏輯運算子會將運算式二邊的運算元的布林值進行邏輯
比較,再將結果以布林值回傳。
以下是 PHP 中的邏輯運算子:
43
3.5.9 位元運算子
位元運算子能夠進行數值或字串的二進位計算動作。其中
數值必須為整數,若為浮點數資料會先轉換為整數再進行運
算。字串資料會先對運算元的長度做適當的取捨,再就對應
位元進行轉換再進行運算。
以下是 PHP 中的位元運算子:
44
3.5.9 位元運算子
45
3.5.10 其他的運算子
錯誤控制運算子
錯誤控制運算子能夠在
PHP 程式運作發生錯誤時,抑制
錯誤訊息的顯示。(指令前加上@ 符號)
執行指令運算子
(需開啟safe_mode = On)
執行指令運算子能讓
PHP 程式執行作業系統中的 shell
指令。使用時只要將要執行的指令以「`」符號前後包含即
可。
46
3.5.11 運算子執行的優先順序
當運算式中使用多個運算子
時,就會面臨執行順序的問
題。不同的順序所演算的結
果也會有所不同,要特別注
意。以下即是所有運算子執
行的優先順序:
47
3.6 表單資料的傳送與接收
表單是網頁瀏覽者將資料傳遞到伺服器處理的介面,在
網頁程式的開發過程中,表單佔了相當重要的地位。如何
正確佈置表單,程式端又如何接收,就是以下要討論的內
容。
3.6.1
表單傳資料與接收的方法
表單運作的原理是在頁面中建置表單區域,並在區域內
放置填寫資料的表單元件,當按下表單的送出鈕時,頁面
會將表單區域中元件內填寫的資料,傳送到指定的目標網
頁接收處理。
48
3.6.2 register_globals 造成的安全危機
在說明
<php.ini> 的設定時,我們曾建議要關閉
register_globals 的設定值,原因是會造成安全性的漏洞,
以下我們將深入說明這個問題。
PHP在表單的目標頁面可以使用
$_GET["欄位名稱"] 與
$_POST["欄位名稱"] 接收它的值,但是當 register_globals
= On 時在接收頁可以直接以 $欄位名稱 取得它的值,這樣
一來就可能造成安全上的危機。
49
3.6.3 取得表單中複選欄位的值
在表單中的元件並不是每一種欄位所送出的值都是單一的,
例如 <select>清單或 <checkbox> 核取方塊都可能會送出複
選的值。若使用一般表單接收方式:$_GET["欄位名稱"] 與
$_POST["欄位名稱"],會發現所接到的值一定都會是選項
裡最後一個的值。
50
3.7 程式引入檔
什麼是程式引入檔,簡單來說就是在一個程式中,嵌入另
一個檔案。為什麼要這樣處理呢?在程式開發的過程中,隨
著功能的複雜整個程式碼也會越加龐大。
3.7.1
為什麼要使用程式引入檔?(模組化)
若我們將常用的程式區塊獨立成一個單獨的檔案,在需要
的時候只要引入到目前的程式中,即可享受該檔案中的功能。
其他需要該功能的頁面,也只要引入該檔也能發揮相同的功
能。
如此一來,若我們要更新或是改寫這個功能的內容,只要針
對這個獨立的檔案來編輯,所有引入該檔的頁面都能立即跟
著更新,在維護上相對單純且方便許多。
51
3.7.2 使用 include 與 require 引入檔案
在
PHP 中您可以使用 include 及 require 將檔案引入,
格式如下:
include("檔案路徑及名稱"); 或 include "檔案路徑及名稱";
require("檔案路徑及名稱"); 或 require "檔案路徑及名稱";
其差異為:

引用檔不在時,require 會停止,而include會告知錯誤後再往
下執行。

require 是直接以內容取代require()位置,而include 是被呼叫
到才引入。

include 可以有回傳值,require 則不行。
52
3.7.3 使用 include_once 與 require_once 引入
檔案
為了避免重覆載入的問題,PHP
提供了 include_once
與 require_once 二個方式來載入檔案,它們的使用方
式與 include、require 相同,但是這二個方法在載入前
會先檢查指定檔案是否已經載入過了,以確保在同一頁
面不會重複載入造成問題。
53
3.7.4 引入檔案的注意事項 (1)
引入檔案的類型
在
PHP 使用引入檔案,可以將類型設為 .txt 文字檔,
或是自訂副檔名的文字檔 (如 .inc),但是因為這樣的引入
檔是可以讓瀏覽者下載檢視的,如此可能會造成安全上
的漏洞。
54
3.7.4 引入檔案的注意事項 (2)
引入檔案的路徑
如右圖
<file.php> 引入的檔案
<inc.php> 放置在同一層的資料夾
<include> 之中,若在 <inc.php> 要
顯示 <img.jpg> 的話,其路徑是
<./img.jpg> 還是 <../img.jpg> 呢?
這裡要注意的一點,是引入檔已經在
載入後已經成為原檔案的一部份,以
這個範例來說,<inc.php> 載入
<file.php>後已經成為 <file.php> 的一
部份,所以若要顯示同一層的圖片路
徑即是 <./img.jpg>。
55