摘要:函數(shù)變量局部變量局部動態(tài)變量變量只在函數(shù)內(nèi)部執(zhí)行,執(zhí)行完畢則被銷毀局部靜態(tài)變量使用修飾,執(zhí)行完畢不被銷毀注函數(shù)內(nèi)部定義的變量,為局部變量,函數(shù)外部不能訪問。局部動態(tài)變量局部靜態(tài)變量全局變量在函數(shù)外部定義的變量,稱為全局變量。
函數(shù)
函數(shù)含義
函數(shù):是實現(xiàn)特定功能的、可以重復執(zhí)行的代碼段;
函數(shù)名:從語法上講,函數(shù)名中能有漢字,但在實際開發(fā)中不建議使用!
函數(shù)結(jié)構(gòu)
function 函數(shù)名 () { //代碼塊 }
函數(shù)名定義規(guī)則
開頭:[a-zA-Z_x7f-xff]
函數(shù)名:[a-zA-Z0-9_x7f-xff]
函數(shù)的首字母不能為數(shù)字、可以是漢子或者字母,函數(shù)中間可以使用數(shù)字
函數(shù)的返回值
和其他語言不同的是,PHP并沒有在函數(shù)聲明的時候顯示函數(shù)是否有返回值,如果函數(shù)內(nèi)部使用了return即表示有返回值,反之則表示沒有返回值,返回類型可以為對象、數(shù)組、字符串等。
函數(shù)變量
//局部變量 //局部動態(tài)變量:變量只在函數(shù)內(nèi)部執(zhí)行,執(zhí)行完畢則被銷毀; //局部靜態(tài)變量:使用static修飾,執(zhí)行完畢不被銷毀; //注:函數(shù)內(nèi)部定義的變量,為局部變量,函數(shù)外部不能訪問。 function func() { $a = 3; //局部動態(tài)變量 static $b = 34; //局部靜態(tài)變量 } //全局變量 //在函數(shù)外部定義的變量,稱為全局變量。在函數(shù)內(nèi)部使用全局變量的時候,不能和其他語言一樣直接使用,有兩種使用方法: //(1)用global關鍵字進行聲明后使用 $a = 3; function func() { global $a; echo $a; } //(2)使用超全局變量數(shù)組$GLOBALS直接訪問 $a = 3; function func() { echo $GLOBALS["a"]; }
函數(shù)的參數(shù)
值傳遞和引用傳遞
//值傳遞:當一個變量的值賦予給另外一個變量的時候,改變其中一個變量的值,將不會影響到另外一個變量的值 //引用傳遞:新變量指向了原始變量,改動新的變量將影響到原始變量,反之亦然。(只有有名字的變量才能引用傳遞,比如表達式就不可以) //注:在函數(shù)中傳遞參數(shù)的類型為對象時,即使不加&,也是引用傳遞,因為對象名對應的是該對象的引用地址。 $a = 4; function func1($c) //值傳遞 { $c = 7; } func1($a); echo $a, " "; //4,函數(shù)沒有改變$a的值 function func2(&$d) //引用傳遞 { $d = 7; } func2($a); echo $a, " "; //7,函數(shù)改變了$a的值
參數(shù)默認值
//如果$a和$b沒有默認值,調(diào)用該函數(shù)的時候必須傳值,否則會報錯,如果有默認值,可以不傳參數(shù) function func($a = 3, $b = 5) { echo "a的值為{$a}, b的值為{$b} "; } func();
可變參數(shù)列表
/* *在函數(shù)定義時,形參可以省略不寫,在函數(shù)內(nèi)部可以通過系統(tǒng)方法獲取傳遞進行的參數(shù)數(shù)組。 *func_num_args():傳入函數(shù)實參的個數(shù) *func_get_args():傳入函數(shù)實參列表(數(shù)組形式) *func_get_arg(index):傳人函數(shù)具體位置的實參 */ function fun6() { echo func_num_args(), " "; //3 print_r(func_get_args()); //數(shù)組 echo func_get_arg(0); //10 } fun6(10, 11, 12);
傳參類型限定
//函數(shù)定義時,可以給參數(shù)限定類型,共三種類型:array,object,callback function func(array $a) //實參必須為數(shù)組類型 { print_r($a); } //func(1); //會報錯 func([1, 2, 3]);
復雜函數(shù)
可變函數(shù)
//將函數(shù)的名字賦值給變量,通過變量去調(diào)用函數(shù),讓函數(shù)的調(diào)用更具多樣性 /* * is_callable(函數(shù)):判斷函數(shù)能否被調(diào)用 * function_exists(函數(shù)):判斷函數(shù)是否存在 */ function func() { echo "hello, world", " "; } $fun = "func"; if (is_callable($fun)){ //判斷是否能調(diào)用 echo "能調(diào)用", " "; $fun(); } if (function_exists($fun)){ echo "能調(diào)用", " "; $fun(); }
函數(shù)的嵌套
/* * php所有定義的函數(shù),作用域都是全局的 * * 和其他語言比如java相比,php不存在內(nèi)置函數(shù),意思就是說bar()不是foo()的內(nèi)置函數(shù), * 兩者沒有區(qū)別,作用域都是全局的,在bar()函數(shù)內(nèi)不能調(diào)用foo()中聲明的變量,但是bar() * 函數(shù)必須在foo()調(diào)用之后才會被定義,才能被調(diào)用 * */ function foo() { $a = "hello, world"; function bar() { /* 不能調(diào)用變量$a */ echo "bar()函數(shù)被調(diào)用"; } /* 內(nèi)部可以調(diào)用bar(),因為其已經(jīng)被定義 */ //bar(); } /* 現(xiàn)在不能調(diào)用bar(),因為其還沒有被定義 */ foo(); /* 現(xiàn)在可以調(diào)用bar(),因為foo()調(diào)用之后,bar()已經(jīng)被定義 */ bar();
遞歸調(diào)用:函數(shù)調(diào)用自己本身,遞歸里面需要有跳出遞歸的判斷條件
匿名函數(shù)
/* * 匿名函數(shù) * 函數(shù)沒有指定名稱,稱為匿名函數(shù) * 通過將函數(shù)賦給變量,通過變量來實現(xiàn)調(diào)用函數(shù) */ $say = function($str) { echo "hello, world"; }; $say("aaa");
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/28737.html
摘要:最后改為超文本預處理器,于年誕生。注釋單行注釋多行注釋你好單行注釋你也好單行注釋多行注釋大家都好變量由一個美元符號后面跟變量名來表示變量名區(qū)分大小寫??勺冏兞靠勺冏兞恳粋€變量的變量名可以動態(tài)設置和使用。 PHP簡介 最初用于維護個人主頁,簡寫為:Personal HomePage。最后改為:Hypertext Preprocessor(超文本預處理器),于1994年誕生。 優(yōu)勢 性...
摘要:時間戳不僅被使用在系統(tǒng),類系統(tǒng)中,也在許多其他操作系統(tǒng)中被廣泛應用。 日期時間函數(shù) 格式化日期 /* * date函數(shù) * string date(string format[, int timestamp]) * 描述:格式化一個本地時間/日期 * * format格式: * Y:4位數(shù)字完整表示的年份 * y:2位數(shù)字表示的年份 * F:月份,完整的文本格式 * ...
摘要:文件函數(shù)庫文件目錄函數(shù)庫為核心函數(shù)庫,可以通過其提供的完成對于文件及目錄的常用操作。 文件函數(shù)庫 文件、目錄函數(shù)庫為PHP核心函數(shù)庫,可以通過其提供的API完成對于文件及目錄的常用操作。 文件信息相關的API /* * 文件信息相關API * filetype(), filesize(), filectime(),filemtime(), fileatime() */ $dir...
摘要:數(shù)學函數(shù)庫進一舍一取整,四舍五入函數(shù)描述將實現(xiàn)舍一取整函數(shù)描述將實現(xiàn)進一取整函數(shù)描述實現(xiàn)四舍五入的功能,表示保留幾位小數(shù)冪運算和平方根函數(shù)描述冪指數(shù)運算函數(shù)描述平方根最大值和最小值函數(shù)描述返回最大值函數(shù)描述返回最小值最大值最小值隨機數(shù)函數(shù)描 數(shù)學函數(shù)庫 進一、舍一取整,四舍五入 /* * floor函數(shù) * float floor(float $value) * 描述:將實現(xiàn)舍一...
摘要:字符串常用函數(shù)獲取字符串長度函數(shù)函數(shù)獲取字符串或數(shù)字的長度王昭格式下,每個漢字個字節(jié)長大小寫轉(zhuǎn)換函數(shù)字符串所有的字母轉(zhuǎn)換為小寫字符串所有的字母轉(zhuǎn)換為大寫將字符串的首字母大寫,其他字母不變將字符串中每個單詞的首字母大寫,其他字母不變字符串替換 字符串常用函數(shù) 獲取字符串長度函數(shù) /* * strlen函數(shù) * int strlen($var) * 獲取字符串或數(shù)字的長度 */ $a = ...
閱讀 3169·2023-04-25 20:22
閱讀 3432·2019-08-30 11:14
閱讀 2679·2019-08-29 13:03
閱讀 3275·2019-08-26 13:47
閱讀 3321·2019-08-26 10:22
閱讀 1354·2019-08-23 18:26
閱讀 705·2019-08-23 17:16
閱讀 1991·2019-08-23 17:01