昨天躺在床上,我在想,我是应该先说一点javascript还是直接就开始PHP,后来想了一下,当时我自己学的时候还不知道javascript呢,所以就跟学习其他语言一样先学PHP一些基本的东西。这些不怎么需要编程,也大部分是理论,但都需要记住。
1.PHP数据类型
PHP常用的数据类型有整型、布尔型、浮点型、字符串型和null型。如果你接触过或者学过其他语言,这些都应该很了解。
但是PHP有着其他语言没有的优势。在C里面,声明变量的方式是这样的:int x;,表明你声明了一个整型的变量x,float y;,表明你声明了一个浮点型变量y。你可以给xy赋值,之后你就可以在你的程序里使用了。但是PHP声明变量的方式便可以不必这么麻烦,你直接给你个变量赋值,$x=123;$y=1.23;。不用你说明xy是什么数据类型,系统会根据你所赋的值而自动的识别是什么类型。在这你也发现了在PHP里声明的变量前面有一个$符号。这个符号是必不可少的,否则就会出错。
(1)整型
在这里我觉得最常用的就是十进制了,也就是我们平时写的数,但是你发现后来用的最多的不是整型,毕竟它的长度有限。但也很重要。除了十进制,还有八进制,十六进制。八进制数字前需要加0,如$num=01234;,代表的就是八进制的1234。十六进制数字前需要加0x。如$num=0x1234;,代表的就是十六进制的1234。这点跟其他语言没什么区别貌似。
(2)布尔型
布尔型特别简单,就两个值,true 和 false。但是经常用到,在后面的流程语句里。在有些情况,并不是又有true或者false代表真假,比如我声明了一个整型变量$f=23;这样,当你判断$f的时候,也是真的,我声明了一个字符串变量$str=””;空的字符串,那么判断$str就是假的。可以再以后的编程中体会。这样会给我们程序带来很大的方便。
(3)浮点型
我把它理解成含有小数点的类型,也就是小数,不管是正数还是负数。但是记得如果你的整型超出了他表示的范围就会自动返回浮点型的变量。
(4)字符串型
我觉得这是最重要的类型。它有三种声明的形式。
① 单引号
$str = ‘字符串’;
②双引号
$str = “字符串”;
先说这两种,看着貌似没什么区别,但是是有的。如果引号里包含了变量,双引号中所包含的变量会自动被替换成实际的数值,而在单引号里的变量则按照普通的字符串输出。比如:
<?php
$str = ‘字符串’; //这里单双引号无所谓
echo “$str”;
echo“<br>”;
echo ‘$str’;
?>
这个程序输出的结果就是:字符串
$str
在编辑器里你就会发现,双引号里$str是黑色的,单引号里是蓝色的。黑色的就是它会被赋给他的值替换。记得这个区别。
然后就是如果你的字符串里有双引号,那么最外层就用单引号,反之亦然。就是不要双引号里包含了双引号,那样程序会出错。当然你可以使用转义符\这个反斜杠。比如我就想用双引号输出$str,你可以这么写:echo “\$str”;这样就会输出$str,因为你把美元符号转义了,告诉系统,我要输出美元符号而不是让它和后面的组成变量。常用的转移字符有:
转移字符 | 输出的值 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\\ | 反斜杠 |
\$ | 美元符号 |
\’ | 单引号 |
\” | 双引号 |
当然还有两个是正则表达式里的,现在可以不用管。
换行和回车有区别吗?
如果你是windows系统,那就没有什么区别了,但如果是linux系统,就有区别了。换行就是换行,回车不是换行,而是回到本行的行首。
再就是建议使用单引号来定义字符串,因为如果使用双引号的话系统还需要对里面的转移字符进行处理,会浪费时间,当然很短,但是也是时间。
③界定符<<<
格式:
$string =<<<str
你需要输出的字符串
str
这里需要注意的一点,就是第二个str必须顶格写,另起一行,不允许有空格。当然你可以自己任意定义什么了,不一定是str。在界定符开始之后,不允许在中间添加任何的注释,否则出错。
我一般不会用到这种方式,一般很长的字符串或者语句用,再就是后面xml操作时可能用到,以后就会了解了。
(5)null型
这里只说有哪些情况赋予空值:
①没有赋任何值
②被赋予null值
③被unset()函数处理过的值
比如:$str=’字符串’;现在输出$str时会输出:字符串。但是如果被unset()函数处理,unset($str),$str就空了。
unset()函数的作用是从内存中删除变量。它不返回任何值。
2数据类型的转换
我这里给出一个表,是一本书上的。
转换操作符 | 转换类型 | 举例 |
(boolean) | 转换成布尔型 | (boolean)$str |
(string) | 转换成字符串型 | (string)$num |
(integer) | 转换成整型 | (integer)$str |
(float) | 转换成浮点型 | (float)$num |
(array) | 转换成数组型 | (array)$str |
(object) | 转成对象 | (object)$str |
另外,我刚发现一个函数,bool settype(mixed var,string type);
可以把变量转换成指定的类型。Var为要转换的变量,type就是要转成的类型,除了上述六种还有一个Null型。如果转换成功就返回true。
我本来还想一篇说完常量变量表达式呢,看来不够了,多了就不愿意看了,那再写一篇吧。如果你有其他语言基础,这些非常好理解。可以看看重要的与其他语言不同的就可以了。
下一篇有福利哦。