什么是函数?函数是做什么的?
将一堆语句(语句块)封装到一起,在需要使用的时候,可以直接调用。
函数分为两种:系统函数(直接调用),自定义函数
函数语法:
function 函数名(参数列表)
{
//函数体
//返回值
}
demo如下:
//定义函数 function myfunc() { echo '你好世界'; } //定义函数 function myFunc1($name) { echo "welcome $name to Itcast for studying php"; } //调用函数 //myFunc1(); //错误,因为此函数必须传入一个参数 myFunc1('杨望'); //正确 myFunc1('邓桂敏',18); //正确,php函数参数只能多不能少,虽然这个18没有被表现出来。
调用函数:调用自定义函数与调用系统函数的方式一样
变量 = 函数名(参数列表); //如果函数有返回值,则可以使用变量接收函数的返回值,如果没有,则接收不到
函数名
跟变量的命名基本一致。
一般函数命名使用驼峰法和下划线方式
函数名字不能与已有关键字重复
函数名字是不区分大小写的,函数名字不能重复
参数列表(形参)
在声明函数的时候,为函数指定的参数,参数可以是多个,函数声明的时候的参数称之为形式参数(形参)
形参是没有值的。
如果函数声明时有形式参数(且形式参数没有默认值),那么在调用该函数时必须传入对应的参数列表(PHP中可以多但是不能少)
函数在声明的时候,参数是形式参数,没有值
在调用函数的时候,传进去的参数称之为实际参数,实际参数不参与函数内部函数体的运作。
实际参数会将自己的值复制一份,然后将复制的值赋值给形式参数
参数传递方式
值传递:将实际参数复制一份,把复制的值赋值给形式参数
引用传递:将实际参数的所以内存的地址,赋值给形式参数
引用传递需要在定义函数的时候,在形式参数前面加上一个地址符号:&
返回值:函数需要给外部传递的信息
语法:return 值
作用域
变量能够被访问到的区域。
js中作用域:
全局作用域:任何地方(函数外和函数内)都可以被使用
局部作用域:只能在函数内部被使用
PHP也有两个作用域:全局作用域和局部作用域
全局作用域:只能在函数外部使用
局部作用域:只能在函数内部使用
全局作用域是指的在函数外部定义的变量,局部作用域指的是在函数内部定义的变量
内部不能访问外部
可以在局部作用域中使用$GLOBALS['全局作用域变量']来访问全局作用域
注意:$GLOBALS就是指代全局作用域本身的变量
PHP还提供了一个关键字:global
global是将全局作用域的变量的地址,进行复制,然后在局部作用域内新建一个同名的变量名,将外部的地址赋值给局部变量。
语法:global 变量名;
变量名 = 值;
作用域demo如下:
//作用域 //定义变量 $out_name = '血滴子'; //全局作用域 //定义函数 function myFunc() { //访问全局变量out_name; //echo $out_name; //访问错误,无法访问全局作用域 //定义一个局部变量 $in_name = '后会无期'; //访问全局作用域 //系统预定义变量没有作用域的限制 //var_dump($GLOBALS); //echo $GLOBALS['out_name']; //可以通过$GLOBALS全局预定义变量来访问全局作用域 //unset($GLOBALS['out_name']); //使用global关键字 global $out_name; //把全局作用域引进来,在局部作用域里定义了一个out_name的局部变量,该变量指向全局作用域的out_name变量(外部) //改变值 $out_name = '小时代3'; //删除out_name unset($out_name); } //调用函数 myFunc(); //echo $in_name; //访问错误,无法访问局部作用域 var_dump($out_name);
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论