变量声明与判断
2019-06-24 本文已影响0人
Oomcc
1.PHP引用变量:不同变量名指向同一地址。unset()只能消除变量的引用,不能删除其内存分配的空间
//定义一个变量a,此时内存开辟了一块区域,$a指向该区域。
$a = 100;
var_dump($a); //int 100
//定义变量b,将a变量的值赋值给b,此时该区域有两个变量($a和$b)指向。
$b = $a;
var_dump($b); //int 100
//修改$a变量的值,php变量具有Copy On Write的特性,
//所以会复制并重写a所指向的区域值,此时a和b分别指向不同区域。
$a = 10;
var_dump($a); //int 10
var_dump($b); //int 100
/*------------------------------------------------------------------*/
$c = 100;
$d = &$c;
$c = 10;
var_dump($c); //int 10
var_dump($d); //int 10
//当引用指向时,php变量不在具有COW特性,且指向同一内存区域。
// unset()只能消除变量的引用,不能删除其内存分配的空间
/*------------------------------------------------------------------*/
2.静态变量会在解析代码的时候声明提前。
$a=3;
echo $a;//输出:3
static $a=6;
echo $a;//输出:12. *静态变量会在编译阶段声明提升*。
$a=9;
echo $a;//输出:9
static $a=12;
echo $a;//输出:9
/*---------------------------------------------*/
3;
12;
9;
9;
3.变量的判断:由于PHP是弱类型,故有很多种情况都可以表示false
//
$b=false
$b=0
$b=0.000(不论多少个0)
$b=""
$b=''
if([]){
print_r(true);
}else{
print_r('aaaaa');//输出aaaaa
}
4.变量类型的转换:settype()函数,(int)...,intval()
settype($exp,'integer');
(int)$exp;
intval($exp);