php函數入門基礎知識有哪些?

2020-07-16 10:06:25

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其它相關文章!