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