2.PHP入門
PHP網站的線上教學已經很棒了。在那裡還有一些其他教程的連結。而本文的該部分將讓你對PHP熟悉一點。我不可能做到沒有任何遺漏,我的目的只在於能讓你迅速開始你的PHP程式。
2.1 首要條件
你首先必須要有一個正在工作著的支援PHP的web伺服器。我假定在你的伺服器上所有PHP檔案的副檔名為.php3。
2.2 PHP的安裝
產生一個名為test.php3的文件,包含以下內容:
phpinfo(); ?>
然後在你的瀏覽器中開啟此文件。看看這個頁面你就知道你的PHP安裝使用的選項了。
2.3 語法
就像前面提到的一樣,你可以混合寫你的PHP程式碼和HTML程式碼。因此你必須有辦法將兩者區分開來。以下就是你可以採用的幾種方法。你可以選用其中一種你最適應的並且就這樣堅持這種方法!
從HTML分離
以下是可以使用的方法:
. . . ?>
語句
與Perl和C一樣,在PHP中用(;)來分隔語句。那些從HTML分離出來的標誌也表示語句的結束。
註解
PHP支援C,C 和Unix風格的註解方式:
/* C,C 風格多行註解*/
// C 風格單行註解
# Unix風格單行註解
Hello,World!
透過我們已經學過的知識,你可以寫一個最簡單的程式輸出一個也許是程式世界中最有名的字:
echo "Hello World!";
?>
First PHP page
// Single line C style comment
/*
printing the message
*/
echo "Hello World!";
# Unix style single line comment
?>
2.4 資料型別
PHP支援整數、浮點數、字串、陣列和物件。變數類型通常不由程式設計師決定而由PHP運行過程決定(真是好的解脫!)。但類型也可以被函數cast或settype()明確的設定。
數值
數值型別可以是整數或是浮點數。你可以用以下的語句來為一個數值賦值:
$a = 1234; # 十進制數
$a = -123; # 負數
$a = 0123; # 八進制數(等於十進制數的83)
$a = 0x12; # 十六進制數(等於十進制數的18)
$a = 1.234; # 浮點數"雙精度數"
$a = 1.2e3; # 雙精度數的指數形式
字串
字串可以由單引號或雙引號引出的欄位定義。注意不同的是被單引號引出的字串是以字面定義的,而雙引號引出的字串可以被擴展。反斜線()可以用來分割某些特殊字元。舉例如下:
$first = 'Hello';
$second = "World";
$full1 = "$first $second"; # 產生Hello World
$full2 = '$first $ second';# 產生$first $second
可以將字元和數字利用運算符號連接起來。字元被轉換成數字,利用其最初位置。在PHP手冊中有詳細的例子。
數組與雜湊表
數組與雜湊表以相同的方法被支援。怎樣運用取決於你怎麼定義它們。你可以用list()或是array()來定義它們,也可以直接為陣列賦值。數組的索引從0開始。雖然我在這裡沒有說明,但你一樣可以輕易的使用多維數組。
// 一個包含兩個元素的陣列
$a[0] = "first";
$a[1] = "second";
$a[] = " third"; // 加入陣列元素的簡單方法
// 現在$a[2]被賦值為"third"
echo count($a); // 印出3,因為該是陣列有3個元素
// 用一個語句定義一個陣列並賦值
$myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
// 噢,忘了教長吧,讓我們加入一個元素
$myphonebook["dean"] = "5397";
/ / 你定義的carale元素錯了,讓我們更正它
$myphonebook["carole"] => "4522"
// 我還沒告訴你怎樣使用數組的相似支持方式嗎?讓我們來看看
echo "$myphonebook[0]"; // sbabu
echo "$myphonebook[1]"; // 5348
其他一些對數組或哈希表有用的函數包括sort(),next(),prev()和each()。
物件
使用new語句產生一個物件:
class foo
{
function do_foo ()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
改變變數型別
在PHP手冊中提到: "PHP不支援(也不需要)直接在宣告變數時定義變數類型;變數類型將根據其被應用的情況決定。如果你為變數var賦值為一個字串,那麼它變成了一個字串。如果你又為它賦了整數值,那麼它就變成了整數。字串"1" (ASCII 49)
$foo = 1; // $foo現在是整數(2)
$foo = $foo 1.3; // $foo是雙精度數(3.3)
$foo = 5 "10 Little Piggies"; // $foo是整數(15)
$foo = 5 "10 Small Pigs"; // $foo是整數(15)
如果想要強行轉換變數型,可以使用與C語言相同的函數settype()。
2.5 變數與常數
可能你已經注意到,變數都有一個美元符號($)的前綴。所有變數都是局部變量,為了使得定義的函數中可以使用外部變量,使用global語句。而你要將該變數的作用範圍限制在該函數之內,使用static語句。
$g_var = 1 ; // 全域範圍
function test()
{
global $g_var; // 這樣就可以宣告全域變數了
}
比較先進一些的是變數的變數表示。請參考PHP手冊。這有時會顯得很有用。
PHP內建了許多已定義的變數。你也可以用define函數定義自己的常數,例如define("CONSTANT","value")。
2.6 運算子
PHP具有C,C 和Java中的通常見到的運算子。這些運算符的優先權也是一致的。賦值同樣使用"="。
算術和字符
以下只有一種運算符是有關字符的:
$a $b :加
$a - $b :減
$a * $b :乘
$a / $b :除
$a % $b :取模(餘數)
$a . $b :字串連接
邏輯和比較
邏輯運算子有:
$a || $b :或
$a or $b :或
$a && $b :與
$a and $b :與
$a xor $b :異或(當$a或$b為true時為true,兩者一樣時為false)
! $a :非
比較運算子有:
$a == $b :相等
$a != $b :不等
$a $a $a > $b :大於
$a >= $b :大於等於
與C一樣PHP也有三重運算子(?:)。位元操作符在PHP同樣存在。
優先權
就跟C以及Java一樣!
2.7 控制流程結構
PHP有著與C一樣的流程控制。我將在下面大概介紹。
if, else, elseif, if(): endif
if (表達式一)
{
. . .
}
elseif (二)
{
. . .
}
else
{
. . .
}
// 或像Python一樣
if (>}
// 或像Python一樣
if (>}
// 或像Python一樣
if (>}
// 或像Python一樣
if (>}
// 或像Python一樣
if (>}
// 或像Python一樣
if (>}
// 或像Python一樣
if(>if一) :
. . .
. . .
elseif (表達式二) :
. . .
else :
. . .
endif
endif
;
Loops. while, do..while, for
while (表達式)
{
. . .
}
do
{
. . .
}
while (表達式);
for (表達式一; 表達式二; 表達式三)
{
. . .
}
/ /或像Python一樣
while (expr) :
. . .
endwhile ;
switch
switch是對多重if-elseif-else結構結構的最好的替換:
switch ($i)
{
case 0:
print "i equals 0";
case 1:
print "i equals 1";
case 1:
print "i equals 1";
case 2:
print "i equals 2";
}
break, continue
break中斷目前的循環控制結構。
continue被用來跳出剩下的目前迴圈並繼續執行下一次迴圈。
require, include
就像C中的#include預處理一樣。你在require中指定的那個檔案將會取代其在主檔案中的位置。在有條件的引用檔案時,可以使用include()。這樣就使得你可以將複雜的PHP檔案分割成多個檔案並且在不同需要時分別引用它們。
2.8 函數你可以像以下的範例一樣定義自己的函數。函數的回傳值可以是任何資料型態:function foo (變數名一, 變數名二, . . . , 變數名稱n) {echo "Example function.n"; return $retval;}所有PHP程式碼都可以出現在函式定義中,甚至包含其他函式和類別的定義。函數必須在引用之前定義。 2.9 類別利用類別模型建立類別。可以參考PHP手冊中對類別的詳細解釋。
class Employee
{
var $empno; // 員工人數
var $empnm; // 員工姓名
function add_employee($in_num, $in_name)
{
$this->empno = $in_num;
$this->empnm = $in_name;
}
function show()
{
echo "$this- >empno, $this->empnm";
return;
}
function changenm($in_name)
{
$this->empnm = $in_name;
{
$this->empnm = $in_name;
}
}
$sbabu = new Employee;
$sbabu->add_employee(10,"sbabu");
$sbabu->changenm("babu");
$sbabu->show();
http://www.bkjia.com/PHPjc/316828.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/316828.htmlTechArticle
2.PHP入門PHP網站的線上教學已經很棒了。在那裡還有一些其他教程的連結。而本文的該部分將讓你對PHP熟悉一點。我不可能做到沒有任何遺...