| |初探|語法|資料型態|變數與常數|外部變數|環境變數|運算元|流程控制|引用檔案|物件| | |
|---|---|
| PHP 簡介 |
|
|
自定函數 | |
基本語法 | |
|
function myFunction( [$arg_1, $arg_2, ...] ) { statements; ...... return $something; } | |
函數的參數 | |
| 只要是 PHP 所支援的變數型態都可以做為參數之用,甚至是陣列也可以。 | |
|
<? $a = array(1, 2, 3); function myFunction( $arr ) { return $arr[0] + $arr[1] + $arr[2]; } echo myFunction($a); ?> | |
| 輸入參數是預設為「傳值(pass by value)」方式,您也可以要求改為「傳址(pass by reference)」方式,以傳入參數的指標。方法就是在參數的前面加上 & 符號即可。 | |
|
<? $a = 3; $b = 6; function myFunction( &$arg_1, $arg_2 ) { $arg_1++; $arg_2++; } myFunction($a, $b); // $a 傳址,$b 傳值 echo $a . ", " . $b; // 4, 6 myFunction($a, &$b); // 強迫 $b 傳址,PHP4 以後不建議使用 echo $a . ", " . $b; // 5, 7 ?> | |
| 參數可以事先給予內定值,當使用者未傳入該參數值時,即可用內定值代替之。有定義內定值的參數在呼叫該函式時可以省略不傳,但一定要放在所有參數的最右邊,否則 PHP 會誤以為您少給了一個參數。 | |
|
<? function myFunction( $a, $b=10 ) { $a++; $b++; echo $a . ", " . $b; } echo myFunction(3); // 4, 11 echo myFunction(3,6); // 4, 7 ?> | |
傳回值 | |
| 傳回值與傳入的參數值一樣,各種資料型態皆可。若希望傳回一個以上的值,可以使用陣列型態。例: | |
|
<? function myFunction( ) { return array(0, 1, 2); } list($a, $b, $c) = myFunction( ); echo $a, $b, $c; ?> | |
以變數為名的函數(Variable Functions) | |
| PHP 也支援以變數為名的函數,就類似以變數為名的變數(Variable Variables)一樣。 | |
|
<? function foo() { echo "In foo()<br>\n"; } function bar( $arg = '' ) { echo "In bar(); argument was '$arg'.<br>\n"; } $func = 'foo'; $func(); // In foo() $func = 'bar'; $func( 'test' ); // In bar(); argument was 'test'. ?> | |
題外話:
您注意到了嗎?在上面這個例子中,echo 字串時多加了 <br>\n,這有什麼作用呢? 加上 <br>,可以使得瀏覽器在顯示該字串時產生換行的效果;加上 \n,則可以使得該字串在原始碼中也有換行的效果。 | |
|
| |
| |初探|語法|資料型態|變數與常數|外部變數|環境變數|運算元|流程控制|引用檔案|物件| | |


基本語法
題外話: