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。