变量声明与判断

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);
上一篇下一篇

猜你喜欢

热点阅读