以前寫了十天學會ASP,十天學會ASP.NET什麼的,現在想想再寫個PHP吧,也算比較全了。 PHP的調試方法我這裡就不說了,外面很多文章都有介紹,也有很多不同的組合。我這裡暫時是以 Apache web server 和 MY SQL 作為WEB伺服器和資料庫,在php-4.3.3下的環境所做的程式。當然要簡單的建置和存取查看資料庫 PHPMYADMIN 不可少。
至於表單設計什麼的,我這裡也不想多說了,在《十天學會ASP》中已經有介紹。
下面簡單介紹一下PHP的語法。
1、嵌入方法:
類似ASP的,當然您也可以自己指定。
2、引用文件:
引用文件的方法有兩種:require 和 include。
require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程式網頁的一部分。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程控制的處理部分。 PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化。
3、註解方法:
<?php 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)
今天就說到這裡,明天說一下流程控制。
第二天
學習目的:掌握php的流程控制
1、if..else 循環有三種結構
第一種是只有用到 if 條件,當作單純的判斷。解釋成 "若發生了某事則怎樣處理"。文法如下:
if (expr) { statement }
其中的 expr 為判斷的條件,通常都是用邏輯運算符號作為判斷的條件。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
範例:本例省略大括號。
<?php if ($state==1)echo "哈哈" ; ?>
這裡特別注意的是,判斷是否相等是==而不是=,ASP程式設計師可能常犯這個錯誤,= 是賦值。 範例:本例的執行部分有三行,且不可省略大括號。
<?php if ($state==1) { echo "哈哈 ; echo "<br>" ; } ?>
第兩種是除了 if 之外,加上了 else 的條件,可解釋成 "若發生了某事則怎樣處理,否則該如何解決"。文法如下 if (expr) { statement1 } else { statement2 } 範例:上面的範例來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括號。
<?php if ($state==1) { echo "哈哈" ; echo "<br>"; } else{ echo "呵呵"; echo "<br>"; } ?>
第三種是遞歸的 if..else 循環,通常用在多種決策判斷時。它將數個 if..else 拿來合併運用處理。 直接看下面的例子
<?php 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 迴圈寫的的例子。
<?php for ( $i = 1 ; $i <= 10 ; $i ++) { echo "这是第".$i."次循环<br>" ; } ?>
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 语法如下 switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } 其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。
<?php 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 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。
今天就说到这里,明天开始说数据库的使用。