php語法------03 php 函數

        php 函數經過關鍵字 function 建立函數。php

function functionName(){
    //代碼段
}

        php 函數準則:數組

        * 函數的名稱應該提示出它的功能;函數

        函數名稱以字母或者下劃線開頭(不能以數字開頭)code

        一、經過php函數方法輸出「Hello World !」遊戲

<?php
	function printHello(){//聲明printHello函數
		echo "Hello World !";//打印「Hello World !」
	}
	printHello();//調用函數
?>

        二、帶參函數。由於php是若類型函數,因此,在調用函數時,參數個數能夠不等於函數聲明時的參數個數。同時,php函數容許有默認值。具體見下段代碼:作用域

<?php
	function add($num1, $num2) {//函數帶兩個參數
		return $num1+$num2;//返回兩個參數的和
	}
	echo add(1, 2);//兩個參數。結果是:3
	echo "<br/>";
	echo add(1);//一個參數,此時會給出warning,可是也能輸出結果。結果是:1
	echo "<br/>";
	echo add(1,2,3);//三個參數,前兩個遊戲,第三個參數無限.結果是:3
	echo "<hr/>";
?>

<?php
	function add2($num1=0,$num2=1){//函數帶兩參數,第一個參數默認值是0,第二個參數默認值是1
		return $num1+$num2;
	}

	echo add2(1,2);//兩個參數,結果是3
	echo "<br/>";
	echo add2(1);//一個參數,第二個參數沒給值,使用默認值1。結果是:2
	echo "<br/>";
	echo add2();//兩個參數均適用默認值,結果是:1
?>

        上段代碼的運行結果以下圖所示:字符串

        

       三、全局變量。PHP函數內部的變量稱爲局部變量,函數外部的變量稱爲全局變量。函數內部訪問不到全局變量。get

        函數變量有本身的做用域。io

        函數內部訪問不到全局變量。function

        在函數中引用全局變量,須要使用:global 關鍵字。

<?php
	$i=10;
	function hello() {
		$i=100;		// 函數變量有本身的做用域,在該函數內部有效
		echo $i;		// 訪問不到全局變量,輸出局部變量$i,輸出結果是100
	}
	hello();
	echo "<br/>";
	echo $i;//輸出結果是全局變量$i的值10
?>

        若要在函數內部引用全局變量,使用global關鍵字:

<?php
	$i=10;
	function hello() {
		global $i;// 使用global關鍵字在函數中引用全局變量
		echo $i; //全局變量$i,10
		$i=100;//賦值
	}
	hello();
	echo "<br/>";
	echo $i;//100
?>

        四、靜態變量:在整個頁面中,函數屢次調用,某函數內的值能夠保存狀態(相對函數而言,值永久存在,函數外無效)。靜態變量使用 static 關鍵字。

<?php
	// 在整個頁面中,函數屢次調用,其函數內的值能夠保存狀態——靜態變量(相對於函數而言,值永久存在)
	function hello() {
		static $i=100;
		echo $i;
		$i++;
	}
	hello();//第一次調用hello()函數,輸出 100。而後執行自增操做,此時$i=101。(先輸出,再自增)
	echo "<br/>";
	hello();//第二次調用hello()函數,由於$i是靜態變量,輸出101。而後自增,此時$i=102
	echo "<br/>";
	hello();//第三次調用hello(),輸出102。而後自增,此時$i=103
	echo "<hr/>";
	echo $i;//直接輸出$i,由於前面三次輸出的$i是輸出hello()函數中的靜態變量。此時,在函數外調用$i,因此,不存在。
?>

        五、返回值和返回參:返回值使用return關鍵字;返回參使用&關鍵字。

        這裏的返回參相似於其餘語言的地址傳遞。

        注意:php中,函數名的大小寫不區分。變量名嚴格區分大小寫。

<?php
	// 函數有返回值,經過return
	// 還能夠有返回參(同時也做爲輸入參數),參數也能夠被返回給調用者,經過&$參數名
	function hello($name, &$msg) {
		echo $msg,"<hr/>";
	//	$msg="Hello, $Name :)";		// ERROR 形參名嚴格區分大小寫
		$msg="Hello, $name :)";
		return strtoupper($name);//strtoupper(字符串),將字符串中字母所有轉爲大寫
	}
	$m="Hi";
	echo Hello("zhangsan", $m);		// 函數名大小寫不區分
	echo "<br/>";
	echo $m;
?>

        上述代碼執行結果以下:

Hi                                         //echo $msg
ZHANGSAN                                   //echo hello()的返回值
Hello, zhangsan :)         //echo $msg。由於函數的第二個參數$msg前使用了&符號,相似地址傳遞

        六、PHP函數的兩個內置函數:func_num_args( ) 和 func_get_args( )

        func_num_args( ):函數參數的個數;

        func_get_args( ):函數參數數組

<?php
	function add() {
	//	echo func_num_args();	// 參數的個數
		if (func_num_args()==0)
			return 0;
		else {
			$sum=0;
			foreach (func_get_args() as $arg) {//循環函數參數的數組
				$sum+=$arg;
			}
			return $sum;	
		}
	}
?>
<?php echo add()?><br/>
<?php echo add(1)?><br/>
<?php echo add(1, 9)?><br/>
<?php echo add(1, 9, 99)?><br/>

        上述代碼中,add()函數的做用是返回函數中參數的總和。若是沒有參數,則返回0。

相關文章
相關標籤/搜索