php 函数通过关键字 function创建函数。
function functionName(){
//代码段
}
php 函数准则:
*函数的名称应该提示出它的功能;
*函数名称以字母或者下划线开头(不能以数字开头)
1、通过php函数方法输出“Hello World !”
function printHello(){//声明printHello函数
echo "Hello World !";//打印“Hello World !”
}
printHello();//调用函数
?>
2、带参函数。因为php是若类型函数,所以,在调用函数时,参数个数可以不等于函数声明时的参数个数。同时,php函数允许有默认值。具体见下段代码:
function add($num1, $num2) {//函数带两个参数
return $num1+$num2;//返回两个参数的和
}
echo add(1, 2);//两个参数。结果是:3
echo "
";
echo add(1);//一个参数,此时会给出warning,但是也能输出结果。结果是:1
echo "
";
echo add(1,2,3);//三个参数,前两个游戏,第三个参数无限.结果是:3
echo "
";
?>
function add2($num1=0,$num2=1){//函数带两参数,第一个参数默认值是0,第二个参数默认值是1
return $num1+$num2;
}
echo add2(1,2);//两个参数,结果是3
echo "
";
echo add2(1);//一个参数,第二个参数没给值,使用默认值1。结果是:2
echo "
";
echo add2();//两个参数均适用默认值,结果是:1
?>
上段代码的运行结果如下图所示:
3、全局变量。PHP函数内部的变量称为局部变量,函数外部的变量称为全局变量。函数内部访问不到全局变量。
函数变量有自己的作用域。
函数内部访问不到全局变量。
在函数中引用全局变量,需要使用:global 关键字。
$i=10;
function hello() {
$i=100;// 函数变量有自己的作用域,在该函数内部有效
echo $i;// 访问不到全局变量,输出局部变量$i,输出结果是100
}
hello();
echo "
";
echo $i;//输出结果是全局变量$i的值10
?>
若要在函数内部引用全局变量,使用global关键字:
$i=10;
function hello() {
global $i;// 使用global关键字在函数中引用全局变量
echo $i; //全局变量$i,10
$i=100;//赋值
}
hello();
echo "
";
echo $i;//100
?>
4、静态变量:在整个页面中,函数多次调用,某函数内的值可以保存状态(相对函数而言,值永久存在,函数外无效)。静态变量使用 static 关键字。
// 在整个页面中,函数多次调用,其函数内的值可以保存状态——静态变量(相对于函数而言,值永久存在)
function hello() {
static $i=100;
echo $i;
$i++;
}
hello();//第一次调用hello()函数,输出 100。然后执行自增操作,此时$i=101。(先输出,再自增)
echo "
";
hello();//第二次调用hello()函数,因为$i是静态变量,输出101。然后自增,此时$i=102
echo "
";
hello();//第三次调用hello(),输出102。然后自增,此时$i=103
echo "
";
echo $i;//直接输出$i,因为前面三次输出的$i是输出hello()函数中的静态变量。此时,在函数外调用$i,所以,不存在。
?>
5、返回值和返回参:返回值使用return关键字;返回参使用&关键字。
这里的返回参类似于其他语言的地址传递。
注意:php中,函数名的大小写不区分。变量名严格区分大小写。
// 函数有返回值,通过return
// 还可以有返回参(同时也作为输入参数),参数也可以被返回给调用者,通过&$参数名
function hello($name, &$msg) {
echo $msg,"
";
//$msg="Hello, $Name :)";// ERROR 形参名严格区分大小写
$msg="Hello, $name :)";
return strtoupper($name);//strtoupper(字符串),将字符串中字母全部转为大写
}
$m="Hi";
echo Hello("zhangsan", $m);// 函数名大小写不区分
echo "
";
echo $m;
?>
上述代码执行结果如下:
Hi //echo $msg
ZHANGSAN //echo hello()的返回值
Hello, zhangsan :) //echo $msg。因为函数的第二个参数$msg前使用了&符号,类似地址传递
6、PHP函数的两个内置函数:func_num_args( ) 和 func_get_args( )
func_num_args( ):函数参数的个数;
func_get_args( ):函数参数数组
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;
}
}
?>
上述代码中,add()函数的作用是返回函数中参数的总和。如果没有参数,则返回0。