觀光客
電腦教學
隱藏選單
回應(20)
通報違規

 [教學] 10天學會php之1與2

請稍後在啵
本文:08/15-22:41

第一天


我這裡暫時是以 Apache web server 和 MY SQL 作為WEB伺服器和資料庫,在php-4.3.3下的環境做的程式。當然要簡單的構建和訪問檢視資料庫 PHPMYADMIN 不可少。

至於表單設計什麼的,我這裡也不想多說了,在《十天學會ASP》中已經有介紹。

下面簡單介紹一下PHP的語法。

1、內嵌方法:

類似ASP的<%,PHP可以是,當然您也可以自己指定。

2、引用檔案:

引用檔案的方法有兩種:require 及 include。
require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的檔案,使它變成 PHP 程式網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。

include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程控制的處理部分中。PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種模式,可以把程式執行時的流程簡單化。

3、註釋方法:

echo "這是第一種例子。\n" ; // 本例是 C++ 語法的註釋
/* 本例採用多行的
註釋模式 */
echo "這是第二種例子。\n" ;

echo "這是第三種例子。\n" ; # 本例使用 UNIX Shell 語法註釋
?>

4、變量類型:

$mystring = "我是字串" ;
$NewLine = "換行了\n" ;
$int1 = 38 ;
$float1 = 1.732 ;
$float2 = 1.4E+2 ;
$MyArray1 = array( "子" , "丑" , "寅" , "卯" );

這裡引出兩個問題,首先PHP變量以$開頭,第二PHP語句以;結尾,可能ASP程式員會不適應。這兩個遺漏也是程式上大多錯誤所在。

5、運算符號:

數學運算: 符號 意義
+ 加法運算
- 減法運算
* 乘法運算
/ 除法運算
% 取餘數
++ 累加
-- 遞減

字串運算:

運算符號只有一個,就是英文的句號。它可以將字串連線起來,變成合併的新字串。類似ASP中的&

$a = "PHP 4" ;
$b = "功能強大" ;
echo $a.$b;
?>
這裡也引出兩個問題,首先PHP中輸出語句是echo,第二類似ASP中的<%=變量%>,PHP中也可以

邏輯運算:

符號 意義
< 小於
> 大於
<= 小於或等於
>= 大於或等於
== 等於
!= 不等於
&& 而且 (And)
and 而且 (And)
|| 或是 (Or)
or 或是 (Or)
xor 異或 (Xor)
! 不 (Not)

今天就說到這裡,明天說一下流程控制。



第2天


學習目的:掌握php的流程控制

1、if..else 循環有三種結構

第一種是只有用到 if 條件,當作單純的判斷。解釋成 "若發生了某事則怎樣處理"。語法如下:
if (expr) { statement }

其中的 expr 為判斷的條件,通常都是用邏輯運算符號當判斷的條件。而 statement 為符合條件的執行部分程式,若程式只有一行,可以省略大括號 {}。

範例:本例省略大括號。

if ($state==1)echo "哈哈" ;
?>

這裡特別注意的是,判斷是否相等是==而不是=,ASP程式員可能常犯這個錯誤,= 是賦值。

範例:本例的執行部分有三行,不可省略大括號。

if ($state==1) {
echo "哈哈 ;
echo "
" ;
}
?>


第兩種是除了 if 之外,加上了 else 的條件,可解釋成 "若發生了某事則怎樣處理,否則該如何解決"。語法如下:

if (expr) { statement1 } else { statement2 } 範例:上面的例子來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括號。

if ($state==1) {
echo "哈哈" ;
echo "
";
}
else{
echo "呵呵";
echo "
";
}
?>


第三種就是遞歸的 if..else 循環,通常用在多種決策判斷時。它將數個 if..else 拿來合併運用處理。

直接看下面的例子

if ( $a > $b ) {
echo "a 比 b 大" ;
} elseif ( $a == $b ) {
echo "a 等於 b" ;
} else {
echo "a 比 b 小" ;
}
?>

上例只用二層的 if..else 循環,用來比較 a 和 b 兩個變量。實際要使用這種遞歸 if..else 循環時,請小心使用,因為太多層的循環容易使設計的邏輯出問題,或是少打了大括號等,都會造成程式出現莫名其妙的問題。

2、 for 循環就單純只有一種,沒有變化,它的語法如下

for (expr1; expr2; expr3) { statement }

其中的 expr1 為條件的起始值。expr2 為判斷的條件,通常都是用邏輯運算符號 (logical operators) 當判斷的條件。expr3 為執行 statement 後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。而 statement 為符合條件的執行部分程式,若程式只有一行,可以省略大括號 {}。

下例是用 for 循環寫的的例子。

for ( $i = 1 ; $i <= 10 ; $i ++) {
echo "這是第".$i."次循環
" ;
}
?>

3、 switch 循環,通常處理複合式的條件判斷,每個子條件,都是 case 指令部分。在實作上若使用許多類似的 if 指令,可以將它綜合成 switch 循環。

語法如下

switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }

其中的 expr 條件,通常為變量名稱。而 case 後的 exprN,通常表示變量值。冒號後則為符合該條件要執行的部分。注意要用 break 跳離循環。

switch ( date ( "D" )) {
case "Mon" :
echo "今天星期一" ;
break;
case "Tue" :
echo "今天星期二" ;
break;
case "Wed" :
echo "今天星期三" ;
break;
case "Thu" :
echo "今天星期四" ;
break;
case "Fri" :
echo "今天星期五" ;
break;
default:
echo "今天放假" ;
break;
}
?>

這裡需要注意的是break;別遺漏了,default,省略是可以的。


很明顯的,上述的例子用 if 循環就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程式的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。

今天就說到這裡,明天開始說資料庫的使用。



    回應(20)  (DMCA Compliance - Abuse 投訴)
[目前是 舊回應在上方][變更為 新回應在上方]
(觀光客) echo - 118.169.225.45
1 F:08/16-02:04
echothise般人看不懂

小帥益
2 F:08/16-14:08
幫推^^"

(觀光客) 晶 - 114.39.110.107
3 F:08/16-22:11
good感謝分享good

(觀光客) 小風~ - 218.173.56.136
4 F:08/16-23:31
推一下

(觀光客) eef - 220.140.224.142
5 F:08/17-22:20
謝謝嚕

(觀光客) 推土機 - 59.117.11.29
6 F:08/21-13:20
謝了

(觀光客) 128 - 61.64.147.85
7 F:08/23-11:11
太妙了1天教學1點點

ZeroDuo
8 F:08/27-17:24
沒些基礎第一篇就掛了= =

傻B
9 F:09/02-20:41
那我可不可以改成這樣寫...

if ( $a > $b ) {echo "a 比 b 大" ; }
elseif ( $a == $b ) {echo "a 等於 b" ; }
else {echo "a 比 b 小" ; }
?>

哭泣殺神
10 F:09/04-10:37
這怎麼會這樣呢

(觀光客) 775776 - 118.232.49.192
11 F:09/18-11:26
good

宅廷
12 F:09/29-02:16
感覺跟c++ 好像差不多

(觀光客) kk0204 - 118.160.227.163
13 F:10/03-14:11
大大你超棒的!!!可否提供您的msn或是教學網止~分享??我需要>"<

(觀光客) 經過的路人 - 114.24.128.221
14 F:10/03-15:26
很明顯~我連SQL都不懂,第一句就死了

(觀光客) Jarvis - 125.224.207.107
15 F:10/05-20:56
強烈認為沒底子的會看不懂...但還是推分享的心

較多的回應紀錄
[目前是 舊回應在上方][變更為 新回應在上方]
[0.10] 🍌