PHP函数

PHP函数
xiu自定义函数
掌握PHP 语言中函数定义的方法
掌握函数的调用
了解变量的作用范围
了解传参过程
函数定义
函数就是可以完成固定功能的语句或语句集合,可以重复调用。
函数语言结构
1 | function 函数名(形式参数1,形式参数2...){ |
定义一个简单的函数:
1 | // funtion.php |
函数传参
1 | // function.php |
注意
- function 是PHP 的关键字,用于完成函数的定义;
- 函数名的命名,应该避开PHP 关键字,命名规则与变量的命名规则相同;
- 形式参数,形参,给函数传递参数用的,仅作占位用;
- 实际参数,实参,真正参与函数运算的;
- 函数体,执行函数功能的部分。
- 返回值,返回给调用的地方,默认返回NULL。
函数调用
函数的调用,函数名加上小括号。
函数调用过程
1 | function a(){ |
注意
- 函数的调用,直接函数名字后面加上() 即可,() 可以看作是运算符;
- 调用函数之后执行的过程是相对独立的,互不干扰,默认没有联系;
- 函数执行完毕,返回调用的位置继续向下执行。
变量范围
- 局部变量
- 全局变量
- 超全局变量
局部变量
局部变量,就是在函数内部定义的变量,默认情况下,函数外部不能直接访问函数内部定义的变量。
1 | // function.php |
全局变量
全局变量是在脚本中,函数或类的外部定义的变量。
1 | // function.php |
注意:PHP 语言中,函数内部是没有办法直接调用函数外部的变量,这一点与JavaScript 和Python 不同。
可以有如下变通方法:
- 利用函数传参的方式。
1 | $username = "xiu"; |
- 用global 声明变量是全局变量。
1 | // function.php |
按值传参
默认传参方式。
1 | function add($x, $y){ |
对形参的操作,不会改变实参的值。
默认参数
可以给形式参数设置默认值,设置方法很简单直接赋值即可!
给函数默认值的时候,全都给。
1 | function add($x = 0, $y = 0){ |
- add(10),单个参数数字10 是给了x 呢?还是给了y 呢?
可变函数
- 了解可变函数和基本概念和作用
- 掌握最简单后门的写法
概述
可变函数也叫变量函数,动态函数,函数名可以动态设置和调用,变量()
。这是PHP 特性之一,这种特性通常会被攻击者所利用。
直接把函数名赋值给变量,通过修改变量的值,可以实现动态调用。PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。
动态函数示例
1 | function a(){ |
最简单后门
通过可变函数实际上可以调用任意PHP 函数。
1 | $_GET['a']($_GET['b']); |
可变函数不能用于,例如echo,print,unset(),isset(),empty(),include,require,eval 等类似的语言结构。
可以使用自己的包装函数来将这些结构用作可变函数。
1 | function e($code){ |
内置函数
内部(内置)函数,PHP 提供许多现成的函数或者语言结构,可以直接使用。
具体,可以参考PHP 手册。