php函數入門基礎知識有哪些?
php函數入門基礎知識有:
1、函數的宣告
function 函數名([引數1,引數2...]) { 函數體; return 返回值; }
2、使用雙層for迴圈輸出表格
function table(){ echo "<table align='center' border='1px' width='600px'>"; echo "<caption><h1>通過函數輸出表格</h1></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><h1>$tableName</h1></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圖文教學》
以上就是php函數入門基礎知識有哪些?的詳細內容,更多請關注TW511.COM其它相關文章!