首页 > 编程 > PHP > 正文

PHP学习——变量

2019-11-11 05:07:58
字体:
来源:转载
供稿:网友

变量的引用和赋值:

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);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表