您好,登錄后才能下訂單哦!
一.標準函數
標準的PHP發行包中有1000多個標準函數,這些標準函數都是系統內置的,不需要用戶自己創建而可以直接使用。
<?
echo md5('123456'); //MD5函數對字符串進行加密處理
?>
二.自定義函數
PHP內置函數允許和文件進行交互、使用數據庫、創建圖形,還可以連接其他的服務器。但是,在實際工作中,有許多時候所需要的東西是語言的創建者無法預見到的。
聲明一個函數可以讓我們想內置函數那樣使用自己的代碼。只要簡單地調用這個函數并提供給它必須的參數。這就意味著,在整個腳本中,都可以調用和多次重復使用相同的函數。
創建函數
<?
function functionName() {
echo '這是一個無參無返回自定義函數';
}
?>
調用函數
<?
functionName();
?>
函數命名
1.函數名不能和已有的函數名重名。
2.函數名只能包含字母、數字和下劃線。
3.函數名不能以數字開頭。
包含參數無返回的函數調用
<?
function functionArea($radius) {
$area = $radius * $radius * pi();
echo $area;
}
functionArea(10);
?>
包含參數有返回的函數調用:使用return()語句可以向函數調用者返回任意確定值,將程序控制權返回到調用者的作用域。
<?
function functionArea($radius) {
return $radius * $radius * pi();
}
echo functionArea(10);
?>
包含默認參數的函數調用:可以為輸入參數指定默認值,在沒有提供其他值的情況下,就會把這個默認值自動賦給該參數。
<?
function functionArea($radius=10) {
return $radius * $radius * pi();
}
echo functionArea();
?>
返回多個值的函數調用:可以通過返回一個數組然后使用list()函數構造即可。
<?
function functionInfo($name,$age,$job) {
$userInfo = array($name,$age,$job); //可以用追加的方式比較常用
return $userInfo;
}
list($name,$age,$job) = functionInfo('吳祁',19,'學生');
echo $name.'今年'.$age.'歲了,目前還是個'.$job;
?>
包含引用傳參的函數調用:引用傳遞可以在函數內對參數的修改在函數范圍外也能反應。
<?
$prices = 50;
$tax = 0.5;
function functionPrices(&$prices,$tax) {
$prices = $prices + ($prices * $tax);
$tax = $tax * 2;
}
functionPrices($prices,$tax);
echo $prices;
echo '<br />';
echo $tax;
?>
請注意,函數調用將不區分大小寫,所以調用functionname()、FunctionName()或FUNCTIOINNAME()都是有效的,而且都將返回相同的結果。為了方便,這里都用小寫。
注意到函數名稱和變量名稱是不同的,這一點很重要。變量名是區分大小寫的,所以$Name和$name是兩個不同的變量,但Name()和name()則是同一個函數。
理解作用域
變量的作用域可以控制變量在哪里是可見并且可用的。不同的編程語言有不同的變量作用域規則。PHP具有相當簡單的規則:
在函數內部聲明的變量作用與是從聲明它們的那條語句開始到函數末尾。這叫做函數作用域。這些變量成為局部變量。
在函數外部聲明的變量作用域是從聲明它們的那條語句開始到文件末尾,而不是函數內部。這叫做全局作用域。這些變量成為全局變量。
特殊的超級全局變量在函數內外部都是可見的。
使用require()和include()并不影響作用域。如果這兩個語句用于函數內部,函數作用域適用。如果它不在函數內部,全局作用域適用。
關鍵字“global”可以用來手動指定一個在函數中定義或使用的變量具有全局作用域。
通過調用unset($variable_name)可以手動刪除變量。如果變量被刪除,它就不在參數所指定的作用域中了。
全局變量定義global
<?
$a = 5;
function fna() {
global $a;
$a = 20;
}
fna();
echo $a;
?>
可以通過使用超級全局變量$GLOBAL,可以訪問或改變全局作用域中的任何變量。
<?
$GLOBALS['a'] = 5;
function fna() {
$GLOBALS['a'] = 20;
}
fna();
echo $GLOBALS['a'];
?>
創建自己的函數庫
通常將函數集文件存放在library文件夾里,然后通過文件調用即可。文件名約定促成可以取名為tool.library.php,tool可以根據情況來設定,后面兩個照抄!
三.文件包含
為了確保重用性和模塊性,最普遍的方式是把功能組建隔離為單獨的文件,然后在需要時重新組裝。PHP提供了四種在應用程序中包含文件的語句。
include()語句將在其被調用的位置處判斷并包含一個文件。包含一個文件與在該語句所在位置復制該文件的數據具有相同的結果。
<?
include 'include.php';
?>
include_once()函數的作用與include()相同,不過它會首先驗證是否已經包含了該文件。如果包含了該文件,則不再執行include_once()。
<?
include_once 'include.php';
?>
require()在很大程度與include()相同,都是將一個模板文件包含到require()調用所在的位置。
<?
require('require.php');
?>
require_once()函數的作用與require()相同,不過require_once()函數確保文件只包含一次。在遇到require_once()后,后面再試圖包含相同的文件時都將被忽略。
<?
require_once('require.php');
?>
require()語句和include()語句幾乎是等價的。二者的差異在于,當這兩個語句調用失敗后,require()將給出一個致命錯誤,而include()只是給出一個警告
四.魔法常量
PHP實現了一些所謂的魔法常量,他們并不真的是常量,因為這些魔法常量會根據使用的場合改變值。
名稱 | 描述 |
__FILE__ | 當前文件名 |
__LINE__ | 當前行號 |
__FUNCTION__ | 當前函數名 |
__CLASS__ | 當前類名 |
__METHOD__ | 當前方法名 |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。