zoukankan      html  css  js  c++  java
  • PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

    前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数!

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    一、函数的声明与使用

    1、函数名是标识符之一,只能有数字字母下划线,开头不能是数字。

    函数名的命名,须符合"小驼峰法则":myNameIsXiaoxi my_name_is_xiaoxi

    函数名不区分大小写。func() Func() FUNC() 都可以

    函数名不能与已有的函数名重复,不能与系统函数名重复。

    2、function_exists("func1");用于检测函数是否已声明;

    注意:传入的函数名,必须是字符串格式:返回结果为true/false。

    二、PHP中变量的作用域

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    1、局部变量:声明在函数内部的变量,称为局部变量。只在函数内部能用,函数外加需使用,需在函数中使用return关键字返回。

    2、全局变量:声明的函数外部的变量,称为全局变量。

    3、函数中,使用变量,默认使用内部局部变量。如果,需在函数中使用全局变量,需要使用global关键字,将全局变量引用函数,才能使用。

    函数中的变量名,如果与全局变量重复,global语句之上,为函数局部变量;global语句之下,为系统全局变量。

    4、 $GLOBALS[]全局数组:

    $GLOBALS[]数组,是PHP给我们内置的全局数组,可以直接给数组添加值,无论在函数内外声明,均可在任何地方直接使用。

    $GLOBALS["a"] = 10; ---> echo $GLOBALS["a"];//任何位置直接使用

    5、函数中使用全局变量,还有一种方式:通过给函数传参,可以在函数内部使用全局变量;

    但是,传递以后的参数是函数的局部变量,内部改变,外部不会变。

    除非,传递的参数是地址function func($a1,&$a2){} //函数内部修改a1,则全局a1不会变,函数内部修改a2,则全局a2会变。

    如果函数的形参,出现了取址符号,则,调用函数时,实参必须是变量,而不能是字面量。

    6、使用require与include包含不会影响作用域。

    三、静态变量

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    1、静态变量,使用static关键字声明。static $num = 10;

    2、静态变量的特点:

    >>>静态变量在函数第一次加载的时候进行声明。

    >>>函数使用完不会立即释放静态变量,静态变量在整个脚本执行过程中,只会声明一次。

    >>>同一函数,多次调用,共享同一个静态变量。

    四、函数的参数传递

    1、在PHP中,涉及参数传递时:实参列表只能比形参多,

    2、常规参数传递:function func($a){} func($a);

    3、引用参数传递:function func(&$a){} func($a);

    ①通过&引用参数传递,函数内修改变量,函数外同步变化

    ②形参为引用参数,实参只能是变量,不能是字面量 func(10); ×

    4、默认参数:function func($b,$a=10){} func(20);

    //是$可以不传,默认为10;$b必须传递,否则使用时未定义报错。

    如果参数中既有默认参数,也有非默认参数,那么默认参数列表

    必须要在非默认参数列表后面,即调用的时候必须保证非默认列表的优先赋值。

    5、可变参数列表:由于PHP实参可以比形参多,那么我们可以传递N个实参,并通过PHP内置函数取到对应参数。

    var_dump(func_get_args());//取所有参数列表(数组)

    var_dump(func_num_args());//返回参数的总个数相当于count(func_get_args());

    var_dump(func_get_arg(0));//根据下标,返回每个参数

    五、变量函数

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    1、将一个函数名,转为字符串后,赋给一个变量。这个变量,就是我们所说的变量函数,可以加()调用函数内容。

    function func(){}--->$fun = "func";--->$func();

    六、回调函数

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    1、使用变量函数,自定义回调函数

    function func($func){$func();}--->function f(){}--->func("f");

    2、使用call_user_func_array和call_user_func自定义回调函数;

    两个函数的第一个参数,均为回调函数,表示执行当前回调。

    不同点在于:call_user_func_array()第二个参数为数组,并将数组的每一个值赋给回调函数的参数列表,相当于JS中的apply();

    而call_user_func,是将回调函数的参数列表,直接展开写到第2~多个参数中,相当于JS中的call();

    eg:call_user_func_array("func",array(1,2,3));

    --> func(1,2,3);

    call_user_func("func",1,2,3); --> func(1,2,3);

    七、匿名函数

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    由于变量函数,在调用时存在多种调用方(func()/$func();)

    所以为了让函数的调用更为同一,才产生了匿名函数!!!

    声明匿名函数,函数体后面的分号必不可少!

    匿名函数本身也是变量,用var_dump();检测为Object类型

    八、PHP闭包

    PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

     

    在PHP中,子函数无法直接访问父函数的局部变量,必须使用User关键词向下传递!!!

    文章收集与网络,辛苦收集转载请备注出处一只大脸猫!

    PHP丨PHP基础知识之流程控制WHILE循环「理论篇」

    PHP丨PHP基础知识之条件语IF判断「理论篇」

    PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

  • 相关阅读:
    商业研究(10):比呀比-海淘电商-海外正品直邮-高品质跨境购物平台
    商业研究(10):比呀比-海淘电商-海外正品直邮-高品质跨境购物平台
    POJ 2923 Relocation
    ZJU 2425 Inversion
    HDU 1394 Minimum Inversion Number
    POJ 1787 Charlie's Change
    HDU 2191 悼念512汶川大地震
    Gym
    HDU 2069 Coin Change
    UVA 674 Coin Change
  • 原文地址:https://www.cnblogs.com/yzdlm/p/13162753.html
Copyright © 2011-2022 走看看