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。

相关文章
相关标签/搜索