函數的定義:函數就是一段封裝好的程式碼區塊,可以隨時呼叫。在PHP中有兩種函數:自訂函數與系統函數。
自訂函數語法格式:
function 函數名稱([參數1,[參數2]....])
{
函數體(程式內容敘述)
[return 傳回值;]
}
#註:[]裡面的東西可有可無
自訂函數的名稱:
它是函數在程式碼中的識別名稱,函數名稱可以是以字母或下劃線開頭後跟零個或多個字母、下劃線和數字的任何字符串。
符合變數名稱的命名規則
函數名稱不區分大小寫。
函數名不能重複,命名函數函數時不可使用已經宣告的函數(這個和變數的命名不同,變數可以覆蓋前一個變數名,而函數不可以),和PHP系統函數名稱。
函數名稱和變數名稱的差異:
變數名稱嚴格區分大小寫,函數名稱不區分大小寫。
參數(可分為形參和實參):
所謂參數就是:用來把數值從函數外部傳入函數體中,並用來加以運算處理。
參數之間以“,”隔開,當函數不需要任何數值傳入時,可以省略參數。
形參:宣告函數時,函數名稱後面括號內的表達式稱為形參。
function table(形參1,形參2){}
實參:被呼叫函數名稱後面括號中的表達式稱為實參。
table(實參1,實參2);
實參與形參需依序對應傳遞資料。
function table2($rows,$cols,$color='yellow') { echo '<table border="1" bgcolor="'.$color.'">'; for($i = 0;$i < $rows;$i++){ echo '<tr>'; for($n = 0;$n <$cols;$n++){ echo '<td>'.($i*$rows+$n).'</td>'; } echo '</tr>'; } } table2(10,10,'red');
注意:函數參數中,沒有預設值的放到前面,有預設值的放在參數清單中的後邊。
table2($rows,$cols,$color = 'yellow')
傳回值:
當呼叫函數時需要它回傳一些數值,那麼就要在函數體中以return語句實現。
格式如下:
return 回傳值;//回傳值可以是變數或變數或是一個運算式
exit(); //無回傳值void
return語句在函數體中使用時,有以下兩個作用:
#return語句可以向函數呼叫者傳回函數體中任意決定的值。
將程式控制權傳回呼叫者的作用域,也就是退出函數。在函數中如果執行了return語句,它後面的語句就不會被執行了。
說明:如果函數沒有回傳值,就只能算是執行過程,只靠函數做一些事情還不夠,有時更需要在程式腳本中
#使用函數執行後的結果。由於變數的作用域的差異,呼叫函數的腳本程式不能直接使用函數體裡面的訊息,但可以透過關鍵字return向呼叫者傳遞資料。
echo與return:
echo直接輸出到瀏覽器,不能再加工,不能賦值給變數
return可以賦值給變數,變數是資料的暫存容器( return回傳一個值,等待一個變數接收它)
注意: 如果函數有回傳值,當函數執行完畢時就會將return後面的值回傳到呼叫函數的位置處,這樣就可以把函數名稱當作函數傳回的值使用。 (這時呼叫函數時對ruturn後面的值是不管用的(retrun的值已經回到呼叫函數的位置處,return以前的輸出還是可以照樣輸出),因為她已經變成某個值了無法用funName ();輸出,需要echo funName()才可以輸出。
#cccaaa格式:函數名稱();
不管是自訂函數還是系統函數,如果函數不被調用,就不會執行。
透過函數名稱去呼叫函數,並讓函數體的程式碼運行,呼叫幾次函數體就會執行幾次。
<?php header("content-type:text/html;charset=utf-8"); echo show(); echo '<hr>'; function show() { echo 'ccc'; return 'aaa'; //return所在行之后的代码不会执行 echo 111; } //函数的调用,不会将return后面的值返回 show(); echo '<hr>'; //return返回的值 需要一个变量来接收它 $result = show(); echo $result; echo '<hr>'; //也可以直接输出 函数名称 echo show(); echo '<hr>';判斷函數是否存在
function showInfo() { } function ShowInfo() { }
PHP
變數的範圍: 局部变量 全局变量 静态变量 结果: libai Notice: Undefined variable: username in D:\xampp\htdocs\89\Exercise\2016-7-28 PHP function\007quanju.php on line 10 xxxx Notice: Undefined variable: name in D:\xampp\htdocs\89\Exercise\2016-7-28 PHP function\007quanju.php on line 16 shifang 在PHP的页面中声明的变量,叫“全局变量”. 函数内的变量叫“局部变量”. 二者没有半毛钱关系:函数内的变量,外部无法调用,函数外的变量,函数无法调用 (某戏班子到某学校唱戏,两者的花名册都不可相互调用) 静态变量: PHP支持声明函数变量为静态的(static)。 一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。 要声明函数变量为静态的用关键字static,通常,静态变量的第一次使用时赋予一个初始值。 输出结果: 00000
<?php
$username = 'shifang';
function stu()
{
$name = 'libai';
echo $name;
//无法调用外部的$username,而在函数体内也没有声明$username
10 echo $username;
echo 'xxxx';
}
stu();
//函数体外无法调用函数体内的变量
16.echo $name;
echo $username;
<?php
function tongji()
{
static $n = 0;
echo $n;
$n++;
}
tongji();
tongji();
tongji();
echo '<hr>';
function jishu()
{
$m = 0;
echo $m;
$m++;
}
jishu();
jishu();
jishu();
0123
以上是php教學:php自訂函數函數應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!