Benniao が学ぶ php (5) 関数の宣言と使い方
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 是声明还是使用?>
<?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.3 & パラメーターを持つ関数 (参照割り当てを示します) このパラメーターは値を渡すことはできず、変数のみを渡します。を渡すことができ、関数は変数の値を変更します。
この変数を使用すると、値も変更されます (Java で参照を渡すのと同じです)
bool arsort (array &array [ , int sort_flags])<?php $arr=array(1, 9, 5, 8, 3, 4); sort($arr); print_r($arr);?>
<?php function demo($a=1, $b=20, $c){ echo "### $a ### $b ### $c ###<br>"; } demo(8,9);?>
<?php function 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 コールバック関数にはコールバックがあります。つまり、この関数を呼び出すときに関数 (関数名、関数名) を渡す必要があります。 string) 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 ) ?>