PHP变量

说说PHP的变量吧。

 

首先说变量。从机器的角度,就是一小块内存,用于存储某个值;从编译器角度,需要指定这块内存所存储的值的类型,从而在编译时或解释时可以分配足够大空间给相应的数据类型;从程序员的角度,变量还有个名字,名字就像一个句柄,可以引用变量在内存中存储的位置或值。

变量做左值时其语义理解为内存空间,做右值时理解为内存中所存储的值。

 

再说PHP变量。由于PHP是弱类型语言,所以变量类型在解释器执行到初始化语句时动态判断。一个PHP变量要么处在未设置状态(unset)要么处在已设置状态(set)。PHP变量被赋予除了null之外的任何值,她就处在设置状态,这时调用isset()函数则返回true。可以通过调用unset()函数或用null赋值将一个已设置状态的PHP变量变为未设置状态的PHP变量。另一种易混的分类是,一个PHP变量要么为空(empty)要么非空(unempty)。未设置状态的PHP变量总是空,设置状态的PHP变量可以是空也可以非空。如何界定空的PHP变量——其值能被evaluate为false的变量:integer 0,double 0.0,empty string, string "0",boolean false,an array with no elements,an object with no properties,const NULL。另外,PHP变量要么被evaluate成true,要么成false。那么空和false的区别在于空只能针对变量。常量和函数返回值均能为false,但决不能为空。

 

变量与常量比较。和C很像,为了避免==误写为=,将常量作为左值,变量作为右值,VALUE == $variable。注意:如果常量为数值,PHP会先将右值的变量转换为数值再做比较,此时变量可能含有字符串或者数值。当VALUE为0时,注意使用===,以此避免当$variable是非数值字符串时,永远被转换为0。

 

为一个可能有值的PHP变量赋予默认值。使用isset()。isset() 和 array_key_exists()的区别:当关联数组的某个键值存在,并且其值为null,则isset()返回false,array_key_exists()返回true。

 

交换变量:list($a,$b) = array($b,$a); 这个方法从速度上不比带中间变量的快,只是为了阅读清晰。

 

动态变量名。$var = 'val';$val = 0;print $$var; 如果动态变量名是复杂表达式,则使用${$express}

 

函数内静态变量。在一个页面生命周期内,做local cache

 

变量持久化:serialize()/unserialize()。注意magic_quotes_gpc和magic_quotes_runtime的配置设置

 

输出数组或对象:print_r()/var_dump()。注意她俩的区别。输出,输出捕获和递归情况。

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值