- 定义
- 关键点:function关键字、函数名、参数、函数体、返回值
- 基本语法:function 函数名(【参数】){函数体 返回值:return}
- 在代码执行阶段,碰到函数名字时才会调用,不在编译阶段
- 调用特点:只要系统在内存中对应函数,可执行(调用在定义之前)
- 函数执行内存分析:
- 编译,将代码边成字节码到内存
- 执行
- 函数返回值
- 所有函数都有返回值
- 没有明确,默认返回null
- 返回值可是任意数据类型
- 函数命名规范
- 由字母、数字、下划线,不以数字开头
- 命名:
- 驼峰法:第一个小写,后面首字母大写
- 下划线:小写
- 在一个脚本周期中,不允许出现同名函数
- 形参
- 实参
- 形参是实参的载体,调用时以实参形式传递给形参,给形参赋值
- 在PHP中允许实参多余形参(个数):函数内部不用而已
- 在PHP中理论上形参个数没有限制(实际开发不会太多)
- 实参不能少于形参个数
- 默认值:default value形参的默认值
- 默认值的定义放在最右边(多个),不能左边有,右边没有(多个函数使用同样的形参名字不冲突)
- 实参在调用时会将值赋给形参,就是简单的值传递,形参与外部世纪传入的参数本身没有任何关联
- 希望在函数内部拿到的外部数据,能够在函数内部改变,就需明确告知函数,函数在调用时主动获取外部数据的内存地址
- 引用传值:基本定义法:function 函数名(形参1&形参2){函数体}
- 调用时,必须给引用传值的参数位置传入实际参数,而且参数本身必须是变量(变量才有只想的数据的内存地址)
- 值传递传递副本,引用传递传递地址
- 引用传递
- 实参在调用时会将值赋值给形参,那么实际上使用的方式就是一种简单的值传递:将实参(如果是变量或者常量或者其他表达式)的结果(值)取出来赋值给形参:形参与外部实际传入的参数本身没有任何关联关系:只是结果一样。
- 有的时候,希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要明确告知函数(定义时),函数才会在调用的时候去主动获取外部数据的内存地址。以上这种定义形式参数的方式叫作引用传值。
- 基本定义语法:Function 函数名(形参1,&形参2){//函数体}
- 在调用的时候,必须给引用传值的参数位置传入实际参数,而且参数本身必须是变量。(变量才有指向的数据的内存地址)
- 引用传值注意事项:在传入实参的时候,必须传入变量,只有变量能引用传递
- 可变个数参数(实参数不确定,指定形参接收若干个实参)