2010年12月1日 星期三

函式Functions

之前我們提到,PHP Resource擁有許多的內建函式,截至目前為止,PHP 5.0之後大約有700多個,這些都是仰賴於Open source的前提,許多使用者的智慧結晶,所以其實你也可以開發撰寫一個自專屬的Function



簡單提出幾個PHP目前的內建函式。

Array()
在之前的文章就有提到的,它的功能為宣告一個陣列。

Array_merge(array1, array2, array3)
合併一個以上的陣列。

Date(format, timestamp)
取得本地時區日期/時間。

那我們不詳談各函式的用法,畢竟,它有700個以上,逐一談論並不是筆者想講述的重點。接著,將說明如何自訂一個函式,並呼叫使用它。

宣告一個函式(Create a Function

語法(Syntax
function functionName(){
code to be executed;
}

1.給於函式一個名稱,用以命名並使用它。
2.函式的命名,不可以用數字當字首。

Example:
<html>
<body>

<?php
function writeName()
{
echo "Kai Jim Refsnes";
}

echo "My name is ";
writeName();
?>

</body>
</html>

Output
My name is Kai Jim Refsnes

這是個最簡單的函式,程式碼簡單的試範如何宣道與使用。當然,另一種使用方式就是可以帶入參數的函式。

<html>
<body>

<?php
function writeName($fname)
{
echo $fname . " Refsnes.<br />";
}

echo "My name is ";
writeName("Kai Jim");
echo "My sister's name is ";
writeName("Hege");
echo "My brother's name is ";
writeName("Stale");
?>

</body>
</html>

Output:
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes.
My brother's name is Stale Refsnes.

很清楚的看到,在宣道函式名稱後方的小括號宣告了一個變數,它將代表著隨著使用函式時帶入的參數會指定給這個變數,然後在函式的程式碼區塊中做處理。

上段的程式做的處理便是在ScreenPrint「參數的值」加上了Refsnes字串。接著下個範例是可以讓函式帶入兩個參數。

Example:
<html>
<body>

<?php
function writeName($fname,$punctuation)
{
echo $fname . " Refsnes" . $punctuation . "<br />";
}

echo "My name is ";
writeName("Kai Jim",".");
echo "My sister's name is ";
writeName("Hege","!");
echo "My brother's name is ";
writeName("Ståle","?");
?>

</body>
</html>

Output
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes!
My brother's name is Ståle Refsnes?

撰寫的方式很簡單,在寫Function時,在名稱後面的小括號中指定多個變數並用逗號分隔開。到目前為止相信對函式的宣告已經有初步的認識,不過目前為止,我們都是將參數丟給函式處理,不過有另一種情況是請Function執行完程式碼後,傳回一個值。

Example:
<html>
<body>

<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}

echo "1 + 16 = " . add(1,16);
?>

</body>
</html>

Output:
1 + 16 = 17

宣告跟處理的方式沒有什麼不一樣,差別在於最後一行的return,它可以用來回傳一個值給函式,以上段程式的例子,在函式中宣告了一個變數$total,用來存放使用函式時所帶入的兩個參數相加的結果,再經由return將該值回遞最後輸出。


PS:在函式中所宣告的變數皆為區域變數。


參考資料:
PHPMySQL網頁設計實務/網奕出版/吳權威 編著

沒有留言:

張貼留言