一.標準函數(shù)
標準的PHP發(fā)行包中有1000多個標準函數(shù),這些標準函數(shù)都是系統(tǒng)內(nèi)置的,不需要用戶自己創(chuàng)建而可以直接使用。
<?
echomd5('123456'); //MD5函數(shù)對字符串進行加密處理
?>
二.自定義函數(shù)
PHP內(nèi)置函數(shù)允許和文件進行交互、使用數(shù)據(jù)庫、創(chuàng)建圖形,還可以連接其他的服務器。但是,在實際工作中,有許多時候所需要的東西是語言的創(chuàng)建者無法預見到的。
聲明一個函數(shù)可以讓我們想內(nèi)置函數(shù)那樣使用自己的代碼。只要簡單地調(diào)用這個函數(shù)并提供給它必須的參數(shù)。這就意味著,在整個腳本中,都可以調(diào)用和多次重復使用相同的函數(shù)。
創(chuàng)建函數(shù)
<?
functionfunctionName() {
echo'這是一個無參無返回自定義函數(shù)';
}
?>
調(diào)用函數(shù)
<?
functionName();
?>
函數(shù)命名
1.函數(shù)名不能和已有的函數(shù)名重名。
2.函數(shù)名只能包含字母、數(shù)字和下劃線。
3.函數(shù)名不能以數(shù)字開頭。
包含參數(shù)無返回的函數(shù)調(diào)用
<?
functionfunctionArea($radius) {
$area=$radius*$radius* pi();
echo$area;
}
functionArea(10);
?>
包含參數(shù)有返回的函數(shù)調(diào)用:使用return()語句可以向函數(shù)調(diào)用者返回任意確定值,將程序控制權(quán)返回到調(diào)用者的作用域。
<?
functionfunctionArea($radius) {
return$radius*$radius* pi();
}
echofunctionArea(10);
?>
包含默認參數(shù)的函數(shù)調(diào)用:可以為輸入?yún)?shù)指定默認值,在沒有提供其他值的情況下,就會把這個默認值自動賦給該參數(shù)。
<?
functionfunctionArea($radius=10) {
return$radius*$radius* pi();
}
echofunctionArea();
?>
返回多個值的函數(shù)調(diào)用:可以通過返回一個數(shù)組然后使用list()函數(shù)構(gòu)造即可。
<?
functionfunctionInfo($name,$age,$job) {
$userInfo=array($name,$age,$job); //可以用追加的方式比較常用
return$userInfo;
}
list($name,$age,$job) = functionInfo('吳祁',19,'學生');
echo$name.'今年'.$age.'歲了,目前還是個'.$job;
?>
包含引用傳參的函數(shù)調(diào)用:引用傳遞可以在函數(shù)內(nèi)對參數(shù)的修改在函數(shù)范圍外也能反應。
<?
$prices=50;
$tax=0.5;
functionfunctionPrices(&$prices,$tax) {
$prices=$prices+ ($prices*$tax);
$tax=$tax*2;
}
functionPrices($prices,$tax);
echo$prices;
echo'<br />';
echo$tax;
?>
請注意,函數(shù)調(diào)用將不區(qū)分大小寫,所以調(diào)用functionname()、FunctionName()或FUNCTIOINNAME()都是有效的,而且都將返回相同的結(jié)果。為了方便,這里都用小寫。
注意到函數(shù)名稱和變量名稱是不同的,這一點很重要。變量名是區(qū)分大小寫的,所以$Name和$name是兩個不同的變量,但Name()和name()則是同一個函數(shù)。
理解作用域
變量的作用域可以控制變量在哪里是可見并且可用的。不同的編程語言有不同的變量作用域規(guī)則。PHP具有相當簡單的規(guī)則:
在函數(shù)內(nèi)部聲明的變量作用與是從聲明它們的那條語句開始到函數(shù)末尾。這叫做函數(shù)作用域。這些變量成為局部變量。
在函數(shù)外部聲明的變量作用域是從聲明它們的那條語句開始到文件末尾,而不是函數(shù)內(nèi)部。這叫做全局作用域。這些變量成為全局變量。
特殊的超級全局變量在函數(shù)內(nèi)外部都是可見的。
使用require()和include()并不影響作用域。如果這兩個語句用于函數(shù)內(nèi)部,函數(shù)作用域適用。如果它不在函數(shù)內(nèi)部,全局作用域適用。
關鍵字“global”可以用來手動指定一個在函數(shù)中定義或使用的變量具有全局作用域。
通過調(diào)用unset($variable_name)可以手動刪除變量。如果變量被刪除,它就不在參數(shù)所指定的作用域中了。
全局變量定義global
<?
$a=5;
functionfna() {
global$a;
$a=20;
}
fna();
echo$a;
?>
可以通過使用超級全局變量$GLOBAL,可以訪問或改變?nèi)肿饔糜蛑械娜魏巫兞俊?/p>
<?
$GLOBALS['a'] =5;
functionfna() {
$GLOBALS['a'] =20;
}
fna();
echo$GLOBALS['a'];
?>
創(chuàng)建自己的函數(shù)庫
通常將函數(shù)集文件存放在library文件夾里,然后通過文件調(diào)用即可。文件名約定促成可以取名為tool.library.php,tool可以根據(jù)情況來設定,后面兩個照抄!
三.文件包含
為了確保重用性和模塊性,最普遍的方式是把功能組建隔離為單獨的文件,然后在需要時重新組裝。PHP提供了四種在應用程序中包含文件的語句。
include()語句將在其被調(diào)用的位置處判斷并包含一個文件。包含一個文件與在該語句所在位置復制該文件的數(shù)據(jù)具有相同的結(jié)果。
<?
include'include.php';
?>
include_once()函數(shù)的作用與include()相同,不過它會首先驗證是否已經(jīng)包含了該文件。如果包含了該文件,則不再執(zhí)行include_once()。
<?
include_once'include.php';
?>
require()在很大程度與include()相同,都是將一個模板文件包含到require()調(diào)用所在的位置。
<?
require('require.php');
?>
require_once()函數(shù)的作用與require()相同,不過require_once()函數(shù)確保文件只包含一次。在遇到require_once()后,后面再試圖包含相同的文件時都將被忽略。
<?
require_once('require.php');
?>
require()語句和include()語句幾乎是等價的。二者的差異在于,當這兩個語句調(diào)用失敗后,require()將給出一個致命錯誤,而include()只是給出一個警告
四.魔法常量
PHP實現(xiàn)了一些所謂的魔法常量,他們并不真的是常量,因為這些魔法常量會根據(jù)使用的場合改變值。
名稱 | 描述 |
__FILE__ | 當前文件名 |
__LINE__ | 當前行號 |
__FUNCTION__ | 當前函數(shù)名 |
__CLASS__ | 當前類名 |
__METHOD__ | 當前方法名 |
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:PHP整理筆記六自定義函數(shù)-創(chuàng)新互聯(lián)
文章起源:http://www.rwnh.cn/article16/ceiidg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、搜索引擎優(yōu)化、云服務器、網(wǎng)站導航、網(wǎng)站策劃、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)