变量的引用和赋值:
php中引用和C++中的完全不同,$a=&$b;这是PHP中用a作为b的引用,而在C++中,int&a=b;是C++的用a做b的引用,而且C++中引用必须初始化。
在PHP中不仅代码形式不同,在PHP中引用不会导致$a和$b在内存上同体,只是把各自的值关联起来。基于这一点,使用unset()则不会导致所有引用变量消失。只是互相取消关联。
变量的类型:
PHP和javaScript一样是弱类型语言,对于C++这种强类型语言来说变量这个“柜子”在制作之前就要决定这个柜子是什么类型的,书柜只能装书,衣柜只能装衣服。对于PHP,Javascript这种弱类型语言来说,变量这个柜子,对于同一个柜子,你用来装书,它就是书柜,你用来装衣服,它就是衣柜。
在PHP中变量的类型是由PHP根据该变量使用的上下文在运行时决定的。
<?php $bool=true; $str="abcd"; $int=100;//用var_dump来查看表达式的值和类型 var_dump($bool); var_dump($str); var_dump($int);结果为:
boolean truestring 'abcd' (length=4)int 100布尔型:在PHP中,布尔型不是只有TRUE或FALSE两个值,当运算符,函数或流程控制需要一个boolean参数时,任何类型的值PHP都会自动转换成布尔型的值:
1:整形 0为FALSE其余为TRUE。
2:浮点数0.0为FALSE。
3:空白字符串和字符串“0”。
4:没有成员变量的数组。
5:没有单元的对象(仅适用于PHP4)。
6:特殊类型NULL(包括尚未设定的变量)。
声明bool型数据如下:
<?php var_dump((bool) ""); var_dump((bool) 1); var_dump((bool) -2); var_dump((bool) 0); var_dump((bool) "foo"); var_dump((bool) array(12)); var_dump((bool) array()); var_dump((bool) "false");结果为:
boolean falseboolean trueboolean trueboolean falseboolean trueboolean trueboolean falseboolean true整形:整形数的字长和平台相关,PHP不支持无符号整数,如果一个数超过了integer这个范围会被解释为float。
浮点型:
浮点数的字长和平台相关,
字符串:(注意PHP中没有char类型)
PHP中字符串可以是一个字符,也可以是多个字符(和C++不同),可以使用单引号、双引号、定界符定义,区别如下:
单引号:
单引号主要用于定义简单字符串。
在单引号字符串中出现的变量不会被变量值替代。
单引号中再包含单引号要用转义字符/'来代替。
单引号之前或字符串尾包含反斜线要用转义字符//代替。
除了上面两种转义字符,其他的转义都是无效的。所以在定义简单字符串时,使用单引号效率会更高,因为PHP解析时不会花费一些处理字符转义和解析变量上的开销。注:HTML标签他还是认识的。
$a='abcde/'abc/'js/nk<br>'; echo "$a$a";输出:
abcde'abc'js/nkabcde'abc'js/nk双引号:
当用双引号指定字符串时,其中的变量会被解析。如果是复杂的语句,可以用花括号括起一个表达式
<?php //定义一个变量名为$beer的变量 $beer='abcdefg'; //可以将下面的变量$beer解析,因为(‘)在变量中是无效的 echo "abc$beer'sjfifj<br>"; //不可以解析变量,因为“s"在变量名中是有效的,没有$beers这个变量 echo "abc$beers<br>"; //使用花括号包含起来 echo "abc{$beer}s<br>";定界符:
在"<<<"之后提供一个标识符开始,然后是包含的字符串,最后是同样的标识符结束字符串。
结束标识符必须从行的第一列开始,并且后面除了分号不能包含其他的字符,空格及空白制表符都不可以,标识符也必须遵循PHP中标签的命名规则。
定界符不能初始化类成员。
NULL类型:
NULL的唯一可能值就是NULL,NULL不表示空格,也不表示零,也不是空字符串,在PHP中NULL不区分大小写,下列情况下一个变量被认为是NULL
将变量直接赋值为NULL
声明的变量尚未赋值
被unset()函数销毁的变量。
<?php $a=null; $b='abc'; unset($b); var_dump($a); var_dump($b); var_dump($c);
新闻热点
疑难解答
图片精选