函数的定义:
    函数(function)是一段完成指定任务的已命名的代码块。函数可以遵照给他的一组值或者参数完成特定的任务,并且可以返回一个值。
    PHP中的两种函数:
    <1>自定义函数
    <2>系统函数
    函数的优越性:
    <1>控制程序的复杂性。
    <2>提高软件的可靠性
    <3>提高软件开发的效率
    <4>提高软件的可维护性
    <5>提高程序的重用性
    image.png
    image.png
    **
    image.png
    image.png

    image.png
    image.png

    自定义函数的名称:
    他是函数在程序代码中的识别名称,函数名可以是字母下划线开头,后面跟零个或多个字母,下划线和数字的任何字符串。
    函数名不区分大小写,函数命名是不可使用已声明函数,或者PHP中的内建函数。
    参数:
    所谓的参数就是用来把数值由函数外部传入函数体中,并用来加以运算处理。参数之间用逗号(“,”)隔开,当函数不需要任何数值参入时,可省略参数。
    返回值:
    当调用函数时需要她返回一些数值,那么就要函数体中用return语句来实现,
    return 返回值; //返回值可以是一个表达式
    exie(); //无返回值
    image.png

    image.png
    判断函数是否存在
    在PHP中函数可以在被调用前被定义,也可以在被调用后被定义。
    function_exists()—判断函数是否存在
    **

    PHP的变量范围
    变量范围
    当主程序调用函数时,PHP会暂时停止目前主要程序的运行,并传递必要的运算参数给函数目标使用,
    以执行函数程序的代码块片段。
    在函数执行结束后,函数会回传执行结果所得的数值,并执行流程转回原本主程序中断的地方,继续
    执行操作。
    变量能见度
    所谓的变量能见度,指变量在程序中可执行的范围。当一个变量赋值执行赋值动作后,会随着声明局部变量的差异,而有不同的作用范围。大致上来说变量会依据声明的部分分为两种:
    局部变量和全局变量
    image.png
    image.png
    image.png
    image.png
    静态变量
    PHP中支持声明函数变量为静态变量(static)。一个静态变量在所有的对该函数的调用之间
    共享,并且仅在脚本执行期间函数第一次被调用时被初始化。要声明函数变量为静态函数的关
    键字static。通常静态函数使用时都会赋予一个初始值。
    image.png
    image.png


    声明及应用各种形式的PHP函数
    <1>常规参数的函数
    常规参数的函数格式说明:
    string example(stringname,int age,double height)
    所谓的常规的参数函数,就是实参和形参应该个数相等,类型一样。
    上面有三个参数,调用时传递的参数个数和顺序必须一致。
    string chr(int $ascii) //返回指定的字符
    float ceil(float $value) //进一法取整
    array array_combine(array $keys,array $values)//合并一个数组
    string implode(string $glue,array $pieces)
    <2>伪类型参数的函数
    伪类型参数的函数格式说明:
    mixed funName(mixed $a, number $b, callback $c)
    PHP是弱类型语言,不仅在声明变量时不需要指定类型,当然在声明函数时也不需要指定类型,所以在PHP中函数的每个参数,都可以为其传递任意类型的值。
    三种伪类型: mixed、number 和 callback。
    bool empty(mixed $var) //检查一个变量是否为空
    bool usort(array &$array,callback $cmp_function) //使用用户自定义的比较函数对数组中的值进行排序
    number abs(mixed $number) //绝对值
    image.png
    image.png
    <3>引用参数的函数
    引用参数的函数格式说明:
    void funName(array &args)
    相对于按值传递模式,并不会将父程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块相对地址导入函数之中。因此当该数值在函数中有任何变动时,会连带对父程序造成影响。
    注意:如果在函数的形参中使用“&“修饰的参数,在调用该函数时必须传入一个变量给这个参数,而是不能传递一个值。
    image.png
    image.pngimage.png
    image.png
    <4>默认参数的函数
    默认参数(“[ ]”中的)的函数格式说明:
    mixed funName(string name [,string value [,int num]])。
    在php中,支持函数的默认方式调用。如果在调用函数时没有指定参数的值,在函数中会使用参数的默认值。
    注意:默认参数必须列在所有没有默认值参数的后面。
    image.png
    image.png
    <5>可变个数参数的函数
    可变个数参数的函数格式说明:
    mixed funName(string arg1 [,string …] )
    通常用户定义函数时,设置的参数数量是有限的。如果希望函数可以接受任意数量的参数,需使用以下函数: func_get_args() //返回一个数组,包含所有参数
    func_num_args() //返回参数总数
    func_get_arg() //接收一个数字参数,返回指定参数
    image.png
    image.png
    <6>回调函数
    回调函数格式说明:
    mixed funName(callback arg)
    所谓回调函数,就是指调用函数时并不是传递一个标准的变量作为参数,而是将另一函数作为参数传递到调用的函数中。
    变量函数
    使用变量函数声明和应用的回调函数
    借助call_user_func_array()函数自定义回调函数
    类静态函数和对象的方法回调
    image.png
    image.png
    类静态函数和对象的方法回调

    image.png
    image.png
    自定义函数库
    代码重用 通过重复使用已有的代码,提高开发效率,降低成本
    include( )和require( ) 函数。 require( )将一个文件在预处理期间被导入,像把该文件粘贴到使用函数的地方。
    include( )与require ( )几乎等价,区别在于在脚本执行时包含,当处理失败时,include( )产生一个警告而require( )则导致一个致命错误。
    include’index.php’是包含文件 //当查不到时会显示就警告
    require’index.php’是依赖文件 //当查不到文件会提示错误
    include_once( )和require_once( )函数
    两个函数在脚本执行期间包括并运行指定文件。与include( )语句及require( )类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括,只会包括一次。这两个函数应该用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。
    include_once //只引用一次