這篇文章運(yùn)用簡單易懂的例子給大家介紹php中函數(shù)的使用,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
廣平ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!1、函數(shù)的聲明
function 函數(shù)名([參數(shù)1,參數(shù)2...]) { 函數(shù)體; return 返回值; }
2、使用雙層for循環(huán)輸出表格
function table(){ echo "<table align='center' border='1px' width='600px'>"; echo "<caption><h2>通過函數(shù)輸出表格</h2></caption>"; for($out=0;$out<10;$out++){ $bgcolor = $out%2 == 0 ? "#FFFFFF" : "#DDDDDD"; echo "<tr bgcolor=".$bgcolor.">"; for($in=0;$in<10;$in++){ echo "<td>".$out*10+$in."</td>"; } echo "</tr>"; } echo "</table>"; }
3、函數(shù)tabel()改寫
function table($tableName,$rows,$cols){ echo "<table align='center' border='1px' width='600px'>"; echo "<caption><h2>$tableName</h2></caption>"; for($out=0;$out<$rows;$out++){ $bgcolor = $out%2 == 0 ? "#FFFFFF" : "#DDDDDD"; echo "<tr bgcolor=".$bgcolor.">"; for($in=0;$in<$cols;$in++){ echo "<td>".($out*$cols+$in)."</td>"; } echo "</tr>"; } echo "</table>"; } table("此時(shí)你是我的唯一",5,3);
4、PHP變量的范圍 (分為局部變量和全局變量)
局部變量也稱為內(nèi)部變量,是在函數(shù)內(nèi)部聲明的變量,其作用域僅限于函數(shù)內(nèi)部。
局部變量從存儲(chǔ)方式上可分為動(dòng)態(tài)存儲(chǔ)類型和靜態(tài)存儲(chǔ)類型。函數(shù)中的局部變量,如果專門聲明為static存儲(chǔ)類別,默認(rèn)都是動(dòng)態(tài)地分配存儲(chǔ)空間的。
其中的內(nèi)部動(dòng)態(tài)變量在函數(shù)調(diào)用結(jié)束后自動(dòng)釋放。如果希望在函數(shù)執(zhí)行后,其內(nèi)部變量依然保存在內(nèi)存中,應(yīng)使用靜態(tài)變量。在函數(shù)執(zhí)行完畢后,靜態(tài)變量并不會(huì)消失,而是在所有對(duì)該函數(shù)的調(diào)用之間共享,即在函數(shù)再次執(zhí)行時(shí),靜態(tài)變量將接續(xù)前次的結(jié)果繼續(xù)運(yùn)算,并且僅在腳本的執(zhí)行期間函數(shù)第一次被調(diào)用時(shí)被初始化。要聲明函數(shù)變量為靜態(tài)的,需要關(guān)鍵字static。自行理解!
function demo($one){ $two = $one; echo "在函數(shù)內(nèi)部執(zhí)行:$two+$one=".($two+$one)."<br/>"; } demo(200); echo "在函數(shù)外部執(zhí)行:$two+$one=".($two+$one); //非法訪問
全局變量也稱外部變量,是在函數(shù)的外部定義的,他的作用域變量定義處開始,到本程序文的結(jié)尾。
在函數(shù)中若要使用全局變量,必須要利用global關(guān)鍵字定義目標(biāo)變量,以告訴函數(shù)主體此變量為全局變量。
$one = 200; $two = 100; function demo(){ //在函數(shù)內(nèi)部使用global關(guān)鍵字加載全局變量$one和$two global $one,$two; echo "運(yùn)算結(jié)果:$two+$one=".($two+$one)."<br/>"; //300 echo "運(yùn)算結(jié)果:".($GLOBAL['two']+$GLOBAL['one'])."<br/>"; }
5、PHP函數(shù)參數(shù)的種類
(1)常規(guī)參數(shù)的函數(shù)
string example(string name,int age,double height)
(2)偽類型參數(shù)的函數(shù):
PHP的偽類型:mixed number callback
三種
mixed funName(mixed $args)
number funName(number $args)
(3)引用參數(shù)的函數(shù):
如果函數(shù)中的形參中有使用"&"修飾的參數(shù),則在調(diào)用該函數(shù)時(shí)就必須傳入一個(gè)變量給這個(gè)參數(shù),而不能傳遞一個(gè)值。
void funName(array $&arg)
(4)默認(rèn)參數(shù)的函數(shù):
默認(rèn)值必須是常量表達(dá)式,不能是變量、類成員或者函數(shù)調(diào)用。PHP允許使用數(shù)組和特殊類型NULL作為默認(rèn)參數(shù)。
mixed funName(string name[,string value[,int age]]) // 在參數(shù)列表中出現(xiàn)使用[]描述的參數(shù) function person($name="張三",$age=20,$sex="男"){ echo "我的名字是:{$name},我的年齡是{$age},我的性別是{$sex}<br/>"; }
(5)可變個(gè)數(shù)參數(shù)的函數(shù):
func_get_args();
//將所有傳遞給腳本的函數(shù)的參數(shù)當(dāng)作一個(gè)數(shù)組返回
func_num_args();
//返回參數(shù)的總數(shù)
mixed func_get_arg(int $arg_num);
//返回參數(shù)列表的某一項(xiàng)(0.....)
(6)mixed funName(string arg[,string ...])
回調(diào)函數(shù):函數(shù)參數(shù)為一個(gè)函數(shù)
mixed funName(callback arg)
//在參數(shù)列表中使用偽類型callback描述了解變量函數(shù)、使用變量函數(shù)聲明和應(yīng)用回調(diào)函數(shù),借助call_user_func_array()
函數(shù)自定義回調(diào)函數(shù),類靜態(tài)函數(shù)和對(duì)象的方法回調(diào);
//變量函數(shù)不能用于語言結(jié)構(gòu),例如echo() //print()、unset()、isset()、empty() //include()、require()及類似的語句 function one($a,$b){ return $a+$b; } function two($a,$b){ return $a+$b+$b*$b; } function three($a,$b){ rerurn $a*$a*$a+$b*$b*$b; } $result = "one"; //$result = "two"; //$result = "three"; echo $result(1,2);
function filter($fun){ $fun(); } function test(){ echo "haha!"; } function test2(){ echo "houhou!"; } filter("test"); filter("test2");//haha!houhou!
function fun($msg1,$msg2){ echo '$msg1='.$msg1; echo '<br/>'; echo '$msg2='.$msg2; } call_user_func_array('fun',array('Lamp','兄弟連'));
//類靜態(tài)調(diào)用和對(duì)象的方法調(diào)用 class Demo{ static function fun($msg1,$msg2){ echo '$msg1='.$msg1; echo '<br/>'; echo '$msg2='.$msg2; } } class Test{ function fun($msg1,$msg2){ echo '$msg1='.$msg1; echo '<br/>'; echo '$msg2='.$msg2; } } //類靜態(tài)調(diào)用 call_user_func_array(array('Demo','fun'),array('Lamp','兄弟連')); //對(duì)象的方法調(diào)用 call_user_func_array(array(new Test(),'fun'),array('Lamp','兄弟連'));
callback
("函數(shù)名稱字符串"); //回調(diào)全局函數(shù)
callback(array
("類名稱字符串","類中靜態(tài)方法名稱字符串"));//回調(diào)類中的靜態(tài)成員方法
callback(array
(對(duì)象引用,"對(duì)象中方法名稱字符串");//回調(diào)對(duì)象中的靜態(tài)成員方法
遞歸函數(shù):函數(shù)調(diào)用自身
6、使用自定義函數(shù)庫
函數(shù)庫并不是定義函數(shù)的PHP語法,而是編程時(shí)的一種設(shè)計(jì)模式。函數(shù)是結(jié)構(gòu)化程序設(shè)計(jì)的模塊,是實(shí)現(xiàn)代碼重用的最重要的核心。為了更好的組織代碼,使自定義的函數(shù)可以在同一個(gè)項(xiàng)目的多個(gè)文件中使用,通常將多個(gè)自定義的函數(shù)組織到同一個(gè)文件或多個(gè)文件中。這些收集函數(shù)定義的文件就是創(chuàng)建的PHP函數(shù)庫。如果在PHP的腳本中想使用這些文件中定義的函數(shù),就需要使用include、require、include_once、require_once中的一個(gè)函數(shù),將函數(shù)庫文件載入到腳本程序中。
include和require語句,都是包括并運(yùn)行指定文件。不同之處在于,對(duì)include語句來說,在執(zhí)行文件時(shí)每次都要進(jìn)行讀取和評(píng)估;而對(duì)require來說,文件只處理一次
(實(shí)際上,文件內(nèi)容替換了require語句),這就意味著如果可能執(zhí)行多次的代碼,則使用require效率比較高。另外,如果每次執(zhí)行代碼時(shí),讀取不同的文件,或者有通過一組
文件迭代的循環(huán),就是用include語句。
require 的使用方法如 require("MyRequireFile.php"); 。這個(gè)函數(shù)通常放在 PHP 程序的最前面,PHP 程序在執(zhí)行前,就會(huì)先讀入 require 所指定引入的文件,使它變成 PHP 程序網(wǎng)頁的一部份。常用的函數(shù),亦可以這個(gè)方法將它引入網(wǎng)頁中。
include 使用方法如 include("MyIncludeFile.php"); 。這個(gè)函數(shù)一般是放在流程控制的處理部分中。PHP 程序網(wǎng)頁在讀到 include 的文件時(shí),才將它讀進(jìn)來。這種方式,可以把程序執(zhí)行時(shí)的流程簡單化。
他們兩個(gè)的用途是完全一樣的,不一定非得哪個(gè)放在最前面哪個(gè)放在中間。他們最根本的區(qū)別在于錯(cuò)誤處理的方式不一樣。
require一個(gè)文件存在錯(cuò)誤的話,那么程序就會(huì)中斷執(zhí)行了,并顯示致命錯(cuò)誤
include一個(gè)文件存在錯(cuò)誤的話,那么程序不會(huì)中端,而是繼續(xù)執(zhí)行,并顯示一個(gè)警告錯(cuò)誤。
關(guān)于php中函數(shù)的介紹和使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
名稱欄目:php中函數(shù)的介紹和使用-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article34/dohhpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、企業(yè)建站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站維護(hù)、自適應(yīng)網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容