1.訪問函數(shù)的參數(shù):使用函數(shù)原型中的參數(shù)名
2.為函數(shù)的參數(shù)設(shè)定默認(rèn)值:在函數(shù)原型內(nèi)部為參數(shù)指定默認(rèn)值
3.傳遞引用:指令函數(shù)接受一個(gè)傳遞引用而不是傳遞值的變量作為參數(shù),即在函數(shù)原型中該參數(shù)的前面加上一個(gè)&
問題:你想把一個(gè)變量傳遞給一個(gè)函數(shù),并希望保留在函數(shù)內(nèi)部對(duì)該變量值的修改。
function wrap_html_tag(&$string, $tag = 'b') {
$string = "<$tag>$string</$tag>";
}
/*
默認(rèn)情況下,函數(shù)參數(shù)通過值傳遞(因而即使在函數(shù)內(nèi)部改變參數(shù)的值,它并不會(huì)改變函數(shù)外部的值)。如果希望允許函數(shù)修改它的參數(shù)值,必須通過引用傳遞參數(shù)。
如果想要函數(shù)的一個(gè)參數(shù)總是通過引用傳遞,可以在函數(shù)定義中該參數(shù)的前面加上符號(hào) &:
*/
4.使用命名的參數(shù):讓函數(shù)只接受一個(gè)參數(shù),但該參數(shù)是一個(gè)關(guān)聯(lián)數(shù)組
5.創(chuàng)建可以接受個(gè)數(shù)可變的參數(shù)的函數(shù):向函數(shù)傳遞一個(gè)數(shù)組,并把要傳遞的參數(shù)變量作為數(shù)組的元素。
6.返回變量的引用:返回變量引用的語法與傳遞變量引用的語法都使用&。不過,返回變量引用不是把&放在參數(shù)前面,而是把它放在函數(shù)名的前面
<?php
function &pc_array_find_value($needle, &$haystack){
foreach ($haystack as $key => $value) {
if ($needle == $value){
return $haystack[$key];
}
}
# code...
}
$minnesota = array('bob dylan', 'F.Scott Fitzgerald', 'Prince', 'Charles Schultz');
$prince = &pc_array_find_value('Prince', $minnesota);
$prince = 'new_prince';
print_r($minnesota);
//輸出Array ( [0] => bob dylan [1] => F.Scott Fitzgerald [2] => new_prince [3] => Charles Schultz )
?>
7.返回多個(gè)值:返回一個(gè)數(shù)組,之后再用list()來分離其中的元素。
8.跳躍選擇返回的值:在list()中忽略不關(guān)心的變量。
9.返回失敗信息:返回false
10.調(diào)用可變函數(shù):使用call_user_func()
11.在函數(shù)內(nèi)部訪問全局變量:把這個(gè)全局變量放到函數(shù)的局部作用域中,并加上global關(guān)鍵字或者,直接在$GLOBALS全局?jǐn)?shù)組中引用這個(gè)變量
12.創(chuàng)建動(dòng)態(tài)函數(shù):使用create_function()