php函式

任何有效的 php 代碼都有可能出現在函式內部,甚至包括其它函式和類定義。

創建函式

函式是通過調用函式來執行的。

語法

PHP 函式準則:

•函式的名稱應該提示出它的功能

•函式名稱以字母或下劃線開頭(不能以數字開頭)

函式簡介

用戶自定義函式一個函式可由以下的語法來定義:

例子 17-1. 展示函式用途的偽代碼

<?phpfunction foo($arg_1, $arg_2, ..., $arg_n){ echo "Example function./n"; return $retval;}?>任何有效的 php 代碼都有可能出現在函式內部,甚至包括其它函式和類定義。

在 php 3 中,函式必須在被調用之前定義。而 php 4 則不再有這樣的條件。 除非函式如以下兩個範例中有條件的定義。

如果一個函式以以下兩個範例的方式有條件的定義,其定義必須在調用 之前完成。

例子 17-2. 有條件的函式

<?php$makefoo = true;/* We can't call foo() from here since it doesn't exist yet, but we can call bar() */bar();if ($makefoo) { function foo() { echo "I don't exist until program execution reaches me./n"; }}/* Now we can safely call foo() since $makefoo evaluated to true */if ($makefoo) foo();function bar(){ echo "I exist immediately upon program start./n";}?>

例子 17-3. 函式中的函式

<?phpfunction foo(){ function bar() { echo "I don't exist until foo() is called./n"; }}/* We can't call bar() yet since it doesn't exist. */foo();/* Now we can call bar(), foo()'s processesing has made it accessable. */bar();?>php 中的所有函式和類都具有全局域,可以在內部定義外部調用,反之亦然。

php 不支持函式重載,也不可能取消定義或者重定義已聲明的函式。

注:函式名是非大小寫敏感的,不過在調用函式的時候,通常使用其在定義時相同的形式。

php 3 雖然支持默認參數(更多信息請參照默認參數的值),但是卻不支持可變的參數個數。php 4 支持:見可變長度的參數列表和涉及到的相關函式 func_num_args()func_get_arg(),以及 func_get_args()以獲取更多的信息。

在 php 中可以調用遞歸函式。但是要避免遞歸函式/方法調用超過 100-200 層,因為可能會破壞堆疊從而使當前腳本終止。

例子 17-4. 遞歸函式

<?phpfunction recursion($a){ if ($a < 20) { echo "$a/n"; recursion($a + 1); }}?>

函式用途

1.查找字元位置函式

strpos($str,search,[int]):查找search在$str中的第一次位置從int開始

stripos($str,search,[int]):函式返回字元串在另一個字元串中第一次出現的位置

strrpos($str,search,[int]):查找search在$str中的最後一次出現的位置從int

2.提取子字元函式(雙位元組)

submit($str,intstart[,intlength]):從$str中strat位置開始提取[length長度的字元串]。

strstr($str1,$str2):從$str1(第一個的位置)搜尋$str2並從它開始截取到結束字元串;若沒有則返回FALSE。

stristr()功能同strstr,只是不區分大小寫。

strrchr()從最後一次搜尋到的字元處返回;用處:取路徑中檔案名稱

3.替換字元串的PHP字元串函式

str_replace(search,replace,$str):從$str中查找search用replace來替換

str_irreplace(search,replace,$str):

strtr($str,search,replace):這個函式中replace不能為”";

substr_replace($Str,$rep,$start[,length])$str原始字元串,$rep替換後的新字元串,$start起始位置,$length替換的長度,該項可選

4.字元長度

intstrlen($str):受字元集限制

5.比較字元函式

intstrcmp($str1,$str2):$str1>=<$str2分別為正1,0,-1(字元串比較)strcasecmp()同上(不分大小寫)

strnatcmp(“4″,”14″)按自然排序比較字元串strnatcasecmp()同上,(區分大小寫)

6.分割成數組的PHP字元串函式

str_split($str,len):把$str按len長度進行分割返回數組

split(search,$str[,int]):把$str按search字元進行分割返回數組int是分割幾次,後面的將不分割

expload(search,$str[,int])

7.去除空格

ltrim、rtrim、trim8.HTML代碼有關函式nl2br():使n轉換為。

strip_tags($str[,'']):去除HTML和PHP標記.在$str中所有HTML和PHP代碼將被去除,可選參數為html和PHP代碼作用是將保留

如:echostrip_tags($text,”);

htmlspecialchars($str[,參數]):頁面正常輸出HTML代碼參數是轉換方式

8.字元大小寫轉換的PHP字元串函式

strtolower($str):字元串轉換為小寫strtoupper($str):字元串轉換為大寫

ucfirst($str):將函式的第一個字元轉換為大寫ucwords($str):將每個單詞的首字母轉換為大寫

9.資料庫相關的

addslashes($str):使str內單引號(¹)、雙引號(")、反斜線()與NUL字元串轉換為¹,",\。

magic_quotes_gpc=On自動對getpostcookie的內容進行轉義get_magic_quotes_gpc()檢測是否打開magic_quotes_gpcstripslashes()去除字元串中的反斜槓

附:PHP字元串函式館,收集了51個PHP處理字元串的函式。包括計算字元串長度、分割字元串、查找字元串等等各個方面。

AddSlashes:字元串加入斜線。bin2hex:二進位轉成十六進位。Chop:去除連續空白。

Chr:返回序數值的字元。

chunk_split:將字元串分成小段。

convert_cyr_string:轉換成其它字元串。

crypt:將字元串用DES編碼加密。

echo:輸出字元串。

explode:切開字元串。flush:清出輸出緩衝區。

get_meta_tags:抽出檔案所有meta標記的資料。

htmlspecialchars:將特殊字元轉成HTML格式。

htmlentities:將所有的字元都轉成HTML字元串。

implode:將數組變成字元串。

join:將數組變成字元串。

ltrim:去除連續空白。

md5:計算字元串的MD5哈稀。

nl2br:將換行字元轉成。

Ord:返回字元的序數值。

parse_str:解析query字元串成變數。

print:輸出字元串。

printf:輸出格式化字元串。

quoted_printable_decode:將qp編碼字元串轉成8位字元串。

QuoteMeta:加入引用符號。

rawurldecode:從URL專用格式字元串還原成普通字元串。

rawurlencode:將字元串編碼成URL專用格式。

setlocale:配置地域化信息。

similar_text:計算字元串相似度。

soundex:計算字元串的讀音值sprintf:將字元串格式化。

strchr:尋找第一個出現的字元。

strcmp:字元串比較。strcspn:不同字元串的長度。

strip_tags:去掉HTML及PHP的標記。

StripSlashes:去掉反斜線字元。

strlen:取得字元串長度。

strrpos:尋找字元串中某字元最後出現處。

strpos:尋找字元串中某字元最先出現處。

strrchr:取得某字元最後出現處起的字元串。

strrev:顛倒字元串。

strspn:找出某字元串落在另一字元串遮罩的數目。

strstr:返回字元串中某字元串開始處至結束的字元串。

strtok:切開字元串。

相關詞條

相關搜尋

熱門詞條

聯絡我們