您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹php中函數的使用,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、函數的聲明
function 函數名([參數1,參數2...]) { 函數體; return 返回值; }
2、使用雙層for循環輸出表格
function table(){ echo "<table align='center' border='1px' width='600px'>"; echo "<caption><h2>通過函數輸出表格</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、函數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("此時你是我的唯一",5,3);
4、PHP變量的范圍 (分為局部變量和全局變量)
局部變量也稱為內部變量,是在函數內部聲明的變量,其作用域僅限于函數內部。
局部變量從存儲方式上可分為動態存儲類型和靜態存儲類型。函數中的局部變量,如果專門聲明為static存儲類別,默認都是動態地分配存儲空間的。
其中的內部動態變量在函數調用結束后自動釋放。如果希望在函數執行后,其內部變量依然保存在內存中,應使用靜態變量。在函數執行完畢后,靜態變量并不會消失,而是在所有對該函數的調用之間共享,即在函數再次執行時,靜態變量將接續前次的結果繼續運算,并且僅在腳本的執行期間函數第一次被調用時被初始化。要聲明函數變量為靜態的,需要關鍵字static。自行理解!
function demo($one){ $two = $one; echo "在函數內部執行:$two+$one=".($two+$one)."<br/>"; } demo(200); echo "在函數外部執行:$two+$one=".($two+$one); //非法訪問
全局變量也稱外部變量,是在函數的外部定義的,他的作用域變量定義處開始,到本程序文的結尾。
在函數中若要使用全局變量,必須要利用global關鍵字定義目標變量,以告訴函數主體此變量為全局變量。
$one = 200; $two = 100; function demo(){ //在函數內部使用global關鍵字加載全局變量$one和$two global $one,$two; echo "運算結果:$two+$one=".($two+$one)."<br/>"; //300 echo "運算結果:".($GLOBAL['two']+$GLOBAL['one'])."<br/>"; }
5、PHP函數參數的種類
(1)常規參數的函數
string example(string name,int age,double height)
(2)偽類型參數的函數:
PHP的偽類型:mixed number callback
三種
mixed funName(mixed $args)
number funName(number $args)
(3)引用參數的函數:
如果函數中的形參中有使用"&"修飾的參數,則在調用該函數時就必須傳入一個變量給這個參數,而不能傳遞一個值。
void funName(array $&arg)
(4)默認參數的函數:
默認值必須是常量表達式,不能是變量、類成員或者函數調用。PHP允許使用數組和特殊類型NULL作為默認參數。
mixed funName(string name[,string value[,int age]]) // 在參數列表中出現使用[]描述的參數 function person($name="張三",$age=20,$sex="男"){ echo "我的名字是:{$name},我的年齡是{$age},我的性別是{$sex}<br/>"; }
(5)可變個數參數的函數:
func_get_args();
//將所有傳遞給腳本的函數的參數當作一個數組返回
func_num_args();
//返回參數的總數
mixed func_get_arg(int $arg_num);
//返回參數列表的某一項(0.....)
(6)mixed funName(string arg[,string ...])
回調函數:函數參數為一個函數
mixed funName(callback arg)
//在參數列表中使用偽類型callback描述了解變量函數、使用變量函數聲明和應用回調函數,借助call_user_func_array()
函數自定義回調函數,類靜態函數和對象的方法回調;
//變量函數不能用于語言結構,例如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','兄弟連'));
//類靜態調用和對象的方法調用 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; } } //類靜態調用 call_user_func_array(array('Demo','fun'),array('Lamp','兄弟連')); //對象的方法調用 call_user_func_array(array(new Test(),'fun'),array('Lamp','兄弟連'));
callback
("函數名稱字符串"); //回調全局函數
callback(array
("類名稱字符串","類中靜態方法名稱字符串"));//回調類中的靜態成員方法
callback(array
(對象引用,"對象中方法名稱字符串");//回調對象中的靜態成員方法
遞歸函數:函數調用自身
6、使用自定義函數庫
函數庫并不是定義函數的PHP語法,而是編程時的一種設計模式。函數是結構化程序設計的模塊,是實現代碼重用的最重要的核心。為了更好的組織代碼,使自定義的函數可以在同一個項目的多個文件中使用,通常將多個自定義的函數組織到同一個文件或多個文件中。這些收集函數定義的文件就是創建的PHP函數庫。如果在PHP的腳本中想使用這些文件中定義的函數,就需要使用include、require、include_once、require_once中的一個函數,將函數庫文件載入到腳本程序中。
include和require語句,都是包括并運行指定文件。不同之處在于,對include語句來說,在執行文件時每次都要進行讀取和評估;而對require來說,文件只處理一次
(實際上,文件內容替換了require語句),這就意味著如果可能執行多次的代碼,則使用require效率比較高。另外,如果每次執行代碼時,讀取不同的文件,或者有通過一組
文件迭代的循環,就是用include語句。
require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。
他們兩個的用途是完全一樣的,不一定非得哪個放在最前面哪個放在中間。他們最根本的區別在于錯誤處理的方式不一樣。
require一個文件存在錯誤的話,那么程序就會中斷執行了,并顯示致命錯誤
include一個文件存在錯誤的話,那么程序不會中端,而是繼續執行,并顯示一個警告錯誤。
關于php中函數的介紹和使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。