php 的静态变量
静态变量:static
,实在函数内部定义的变量,使用static关键字修饰,用来实现跨函数共享数据的变量:函数运行结束所有的局部变量都会清空,如果重新运行一下函数,所有的局部变量又会重新初始化。
基本语法:
//function 函数名(){
///定义变量名
//static $变量名 = 值; //通常会在定义的时候就直接赋值
//}
<?php
//静态变量
//定义函数
function display(){
//定义变量
$local = 1; //局部变量
//定义静态变量
static $count =1;
echo $local++,$count++,'<br>';
}
//调用
display();
display();
display();
?>
静态变量的作用是是为了跨函数共享数据(同一个函数被调用多次)
静态变量的作用:
- 为了统计:当前函数被调用的次数(有没有替代方法)
- 为了统筹函数多次调用得到不同的结果(递归思想)
可变函数
可变函数:当前有一个变量所保存的值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用。
#变量= 'display';
function display(){
}
//可变函数
$变量();
匿名函数
匿名函数的基本概念
匿名函数:没有名字的函数
基本语法:
变量名 = function{
函数体
};
变量保存匿名函数,本质的到是一个对象:
闭包
闭包:closure,一词来源于两者的结合:要执行的代码块(由于自由变量被包含在代码块,这些自由变量以及他们引用的对象没有释放)和为自由变量提供绑定的计算环境(作用域)
简单理解:函数内部有一些局部变量(要执行的代码块)在函数执行之后没有被释放,是因为在函数内部还有对应的函数在引用( )
<?php
//闭包函数
function display()
{
//定义变量:局部变量、
$name = __FUNCTION__;
//定义匿名函数
$innerfunction = function()use($name){//use 就是将外部变量(局部)保留给内部使用(闭包)
//函数内部使用的函数
echo $name;
};
//调用函数
$innerfunction();
}
display();
?>
证明:函数局部变量在函数使用完之后内有被释放?
- 使用内部匿名函数;
- 匿名函数使用局部变量:
use
;- 匿名函数返回给外部使用;
当前局部变量$name在49行display函数运行结束后并没有被释放,从而在外部调用匿名函数的时候可以被使用
伪类型
伪类型:假类型,实际在php中不存在的类型。但是可以通过通过伪类型可以帮助程序员去更好的查看操作手册从而更方便学习
伪类型主要有两种在三大类八小类之外
Mixed:混合的,可以是多种php中的数据类型;
Number:数值的,可以是任意类型(整形和浮点型)