標籤:des style blog java 使用 os strong 資料
1、函數的聲明
<?php/** * function 函數名(參數1, 參數2.... ){ * 函數體; * 傳回值; * } */$sum = sum(3, 4);echo $sum;function sum($x, $y){$sum = 0;$sum = $x * $x + $y + $y;return $sum;}?>
2、變數的範圍
局部變數: 在函數中聲明的變數就是局部變數, 只能在自己的函數內部使用。
全域變數: 在函數外聲明的變數就是全域變數, 在變數聲明以後直到整個指令碼結束前都可以使用, 包括在函數中和 { } 中都可使用。
2.1 知識點: PHP的變數分不出是聲明還是使用
<?php$a = 10;function demo($a){$a += 10;echo $a . '<br>';}demo($a);echo $a;// 結果: 20, 10// PHP的變數分不出 $a 是聲明還是使用?>2.2 知識點: 函數中使用全域變數必須使用global關鍵字, 在聲明global之後的變數才是全域的變數
<?php$a = 10;function demo() {global $a;$a += 10;echo $a . " demo <br>";}function test() {global $a;$a += 5;echo $a . "test <br>";}echo $a . " ----<br>"; // 10 ----demo(); // 20 demo echo $a . " !!!!<br>"; // 20 !!!!demo(); // 30 demo echo $a . " @@@@<br>"; // 30 @@@@test(); // 35 test echo $a . " ####<br>"; // 35 ####?>
靜態變數: 只能聲明在函數中(類中), 不能在全域聲明, 變數前使用static關鍵字修飾。
2.3 知識點: 靜態變數在靜態代碼塊中儲存, 它的值可以一個函數多次調用之間共用, 但只在第一次調用函數時聲明到記憶體
以後再調用時就不再聲明而直接使用(和Java類似)。
<?php function test(){ static $a = 0; $a++; echo $a."<br>"; } test(); // 1 test(); // 2 test(); // 3?>
3、變數函數
其實這個和JS又很類似, 例如: 定義$var = hello, 下次使用$var()時就將尋找與變數值同名的函數hello()
<?php function one($a, $b){ return $a + $b; } function two($a, $b){ return $a * $a + $b * $b; } function three($a, $b){ return $a * $a * $a + $b * $b * $b; } //$var = one; //$var = "two"; $var = three; echo "結果:".$var(3, 4)."<br>"; // 91?>
4、系統函數
4.1 常規函數
bool copy (string source, string dest)
4.2 帶有mixed, mixed表示可以傳任何類型的資料
bool chown (string filename, mixed user)
4.3 帶有&參數的函數, 表示引用賦值, 這個參數不能傳值, 只能傳一個變數,然後函數將變數的值改變,
我們在使用這個變數時,值也是變化的(和Java中傳引用又是一樣的)
bool arsort (array &array [, int sort_flags])
<?php$arr=array(1, 9, 5, 8, 3, 4);sort($arr);print_r($arr);?>
4.4 預設函數, 帶有[]的函數, 表示這個參數是可選的,如果你傳值了就使用你傳的值,如果沒有傳值則使用預設值
bool arsort (array &array [, int sort_flags])
<?phpfunction demo($a=1, $b=20, $c){echo "### $a ### $b ### $c ###<br>";}demo(8,9);?>4.5 帶有...的參數函數, ...表示可以傳任意多個參數
int array_unshift (array &array, mixed var [, mixed ...])
<?phpfunction demo(){ $sum = 0; for($i = 0; $i < func_num_args(); $i++){ $sum += func_get_arg($i); } return $sum; } echo demo(1, 2, 3, 4, 5, 6, 7, 8, 9);?>
4.6 回呼函數 帶有callback, 就是調用這個函數時需要我們傳一個函數進來(函數名,函數名字串)
array array_filter (array input [, callback callback])
<?php function demo($n){ if($n % 2== 0){return true; }else{return false; } } $a = array(1, 2, -3, 4, -5, 6, -7, 8, 9); print_r(array_filter($a, demo)); // Array ( [1] => 2 [3] => 4 [5] => 6 [7] => 8 ) ?>