PHP有8大数据类型,分为三个大类
标量数据类型(简单数据类型)
整型:int或者integer
浮点型:float或者double
布尔型:bool或者Boolean
字符型:string
复合数据类型
数组:array
对象:object
特殊数据类型
资源:resource
空:NULL
为什么会有数据类型?
对于电脑来说,根本没有数据类型,只有二进制。
是因为人有需求,需要对数据进行分门别类,所以才定义了这么些数据类型。
PHP是一门弱类型的语言。
强类型:在给变量赋值之前,需要对变量的类型进行声明,而且给变量的值必须是指定类型的数据
Int num;
Num = 10;
//num = ‘abcd’;//系统会报错,提示数据类型不符合
弱类型:变量分为两个部分,一部分是变量名,变量值,变量名是不区分数据类型的,值是有类型
$a = 10; //10是整型,但是a变量本身没有数据类型。
整型:int,指的是在一定范围内的整数。
PHP_INT_MAX 代表整型的最大值。
如何判断一个变量到底是什么类型?var_dump(变量)
PHP还支持其他进入:八进制和十六进制
八进制:逢十进一,假设一个十进制的数值为17,21
PHP默认都是认为是十进制,除非碰到以0开始,而且在输出的时候会将其他类型进制转化成十进制输出。
$oct = 021;
如何让系统在输出的时候保留原来的进制输出?printf(‘%o’,$a);
十六进制:逢16进1
1,2,3,4,5,6,7,8,9,a,b,c,d,e,f---------10,11…1f--------20,21….
$hex = 0x15; //21
进制转换
十进制转八进制
十进制转十六进制
十六进制转十进制(其他进制转十进制都可以采用同样的方式)
PHP为用户提供了进制转换的函数
Hexdec():十六进制转十进制
Dechex():十进制转十六进制
Bindec():二进制转十进制
Decbin():十进制转二进制
Octdec():八进制转十进制
Decoct():十进制转八进制
浮点型:float
强类型语言里
Float:4个字节,单精度
Double:8个字节,双精度
单精度和双精度表示能够精确的位数不一样,单精度的精确长度7位,双精度大概是16位左右
单精度值:1234567890 ----------》1234570000
在PHP中
Float=double=8个字节
PHP中浮点数能够保存的最大值:1.8 * 10^302
因为浮点数会丢失精度,所以有可能导致看到的浮点数跟实际存储的浮点数一样,因此不采用浮点数进行比较
时间戳是一类整型
布尔类型
正常的,布尔类型有两个值:TRUE和FALSE
在PHP中,只要非0,都为TRUE
在PHP中,有哪些会被认为是FALSE呢?
以下部分都是FALSE,这部分FALSE不能用来输出或者var_dump判断,属于不同的数据类型,需要通过if进行判断,从而得出其正确的布尔结果
FALSE
0
0.0
’’
’0’
空数组
null值
字符类型
由字符组成的数据类型就是字符类型。
定义方式有多种
$str1 = ‘abcd’;
$str2 = “abcd”;
单引号和双引号有什么区别?
单引号里只能识别\’对于单引号的转义
双引号里不能识别\’对单引号的转义,双引号\”,\r\n\t都可以识别
注意:转义字符\不能放倒字符串的最后,因为放到最后会对最后的引号(不论单双)都会进行转义。
字符串定义方式:定界符
语法:$string = <<<STR
字符串内容
STR;
使用双引号也可以实现js的输出
说明双引号跟定界符方式没有什么明显的区别
定界符也可以输出变量
注意:使用定界符输出字符串能够保留其原有的格式。
什么时候使用定界符,什么时候使用双引号?
他们之间没有什么区别。通常,当字符串非常长而且复杂的时候,尽可能的使用定界符,因为其格式非常明确,便于识别。如果字符串很短的话,那么就建议使用双引号。
什么时候使用双引号,什么时候使用单引号?
有这么一种认为:单引号的效率比双引号效率高。如果输出的字符串不需要解析变量和一些转义字符,那么尽量使用单引号,其他情况下使用双引号或者定界符。
定界符需要注意以下几点
- 定界符的第一行 <<< STR之后不能有任何内容,连空格都不行
- 使用定界符,注释不能卸载定界符内容里面
- 最后部分STR要独占一行
- 最后部分STR必须要顶格,如果出现了这种错误,很难找出来
在双引号或者定界符中解析变量注意事项
- 保证变量名与后面的其他字符串之间没有联系(可以通过空格来进行区分)
- 使用{}对变量进行包含,显示的告诉编译器大括号里面的是一个变量
提示浏览器使用指定编码解析html文件
PHP代码执行过程
PHP是以中脚本语言, 也是一种解释型语言
Index.c
Index.java ====》 index.class ==è执行index.class文件
前面两种都需要先进行编译,产生一个执行文件
Index.php ======》解释
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/2081.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除