php基础巩固加强(三)

什么是函数?函数是做什么的?

将一堆语句(语句块)封装到一起,在需要使用的时候,可以直接调用。

函数分为两种:系统函数(直接调用),自定义函数


函数语法:

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);


声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与