🍬 博主介绍
👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
静态变量
静态变量:static,是在函数内部定义的变量,使用static关键字修饰,用来实现跨函数共享数据的变量:函数运行结束所有局部变量都会清空,如果重新运行一下函数,所有的局部变量又会重新初始化。
基本语法:
Function 函数名(){
//定义变量
Static $变量名 = 值; //通常会在定义的时候就直接赋值
}
静态变量的作用是为了跨函数共享数据(同一个函数被多次调用)
- 静态变量的原理:系统在进行编译的时候就会对static这一行进行初始化:为静态变量赋值
- 函数在调用的时候,会自动跳过static关键字这一行
可变函数
可变函数:当前有一个变量所保存到值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用。
<?php
//可变函数
//定义系统函数
function sys_function($arg1,$arg2)
{
//给指定的函数($arg1),求对应的第二个参数的4次方($arg2)
$arg2 = $arg2 + 10;
return $arg1($arg2); //user_function(20)
}
//定义一个用户函数:求一个数的4次方
function user_function($num)
{
return $num * $num * $num * $num;
}
//求10的4次方
echo sys_function('user_function',10);
可变函数在系统使用的过程中还是比较多的,尤其是使用很多系统函数的时候:需要用户在外部定义一个自定义函数,但是是需要传入到系统函数内部使用。
匿名函数
基本概念
匿名函数:没有名字的函数
基本语法:
变量名 = Function(){
函数体
};
变量保存匿名函数,本质得到的是一个对象(Closure)
闭包
- 闭包:closure, 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)
- 简单理解:函数内部有一些局部变量(要执行的代码块)在函数执行之后没有被释放,是因为在函数内部还有对应的函数在引用(函数的内部函数:匿名函数)
<?php
//闭包函数
function display()
{
//定义变量:局部变量
$name = __FUNCTION__;
//定义匿名函数
$innerfunction = function() use($name){ //use 就是相当于Java中的继承,就是$name的东西留给$innerfunction函数
//内部函数
echo $name;
};
//调用函数
$innerfunction();
}
display();
证明:函数的局部变量在函数使用完之后没有被释放?
1、 使用内部匿名函数;
2、 匿名函数使用句变量:use;
3、 匿名函数被返回给外部使用;
伪类型
伪类型:假类型,实际上在PHP中不存在的类型。但是通过伪类型可以帮助程序员去更好的查看操作手册从而更方便学习。
伪类型主要有两种:在三大类八小类之外
Mixed:混合的,可以是多种PHP中的数据类型
Number:数值的,可以是任意数值类型(整形和浮点型)
本文含有隐藏内容,请 开通VIP 后查看