我的php学习第二十五天——PHP的数据类型

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 代表整型的最大值。

image086

如何判断一个变量到底是什么类型?var_dump(变量)

image088

PHP还支持其他进入:八进制和十六进制

八进制:逢十进一,假设一个十进制的数值为17,21

PHP默认都是认为是十进制,除非碰到以0开始,而且在输出的时候会将其他类型进制转化成十进制输出。

$oct = 021;

image090

如何让系统在输出的时候保留原来的进制输出?printf(‘%o’,$a);

image092

十六进制:逢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

image094

进制转换

十进制转八进制

image096

十进制转十六进制

image098

十六进制转十进制(其他进制转十进制都可以采用同样的方式)

image100

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

image102

image104

因为浮点数会丢失精度,所以有可能导致看到的浮点数跟实际存储的浮点数一样,因此不采用浮点数进行比较

image106

时间戳是一类整型

image108

布尔类型

正常的,布尔类型有两个值:TRUE和FALSE

在PHP中,只要非0,都为TRUE

image110

在PHP中,有哪些会被认为是FALSE呢?

以下部分都是FALSE,这部分FALSE不能用来输出或者var_dump判断,属于不同的数据类型,需要通过if进行判断,从而得出其正确的布尔结果

FALSE

0

0.0

’’

’0’

空数组

null值

字符类型

由字符组成的数据类型就是字符类型。

定义方式有多种

$str1 = ‘abcd’;

image112

$str2 = “abcd”;

image114

单引号和双引号有什么区别?

  1. 双引号号中会对符合条件的变量进行解析,得到其结果;单引号会直接原样输出所有字符。image116
  2. 在双引号中,能够解析更多的转义字符image118

单引号里只能识别\’对于单引号的转义

双引号里不能识别\’对单引号的转义,双引号\”,\r\n\t都可以识别

注意:转义字符\不能放倒字符串的最后,因为放到最后会对最后的引号(不论单双)都会进行转义。

 

字符串定义方式:定界符

语法:$string = <<<STR

字符串内容

STR;

image120

使用双引号也可以实现js的输出

image122

说明双引号跟定界符方式没有什么明显的区别

定界符也可以输出变量

image124

注意:使用定界符输出字符串能够保留其原有的格式。

什么时候使用定界符,什么时候使用双引号?

他们之间没有什么区别。通常,当字符串非常长而且复杂的时候,尽可能的使用定界符,因为其格式非常明确,便于识别。如果字符串很短的话,那么就建议使用双引号。

什么时候使用双引号,什么时候使用单引号?

有这么一种认为:单引号的效率比双引号效率高。如果输出的字符串不需要解析变量和一些转义字符,那么尽量使用单引号,其他情况下使用双引号或者定界符。

定界符需要注意以下几点

  1. 定界符的第一行 <<< STR之后不能有任何内容,连空格都不行
  2. 使用定界符,注释不能卸载定界符内容里面
  3. 最后部分STR要独占一行
  4. 最后部分STR必须要顶格,如果出现了这种错误,很难找出来

在双引号或者定界符中解析变量注意事项

  1. 保证变量名与后面的其他字符串之间没有联系(可以通过空格来进行区分)
  2. 使用{}对变量进行包含,显示的告诉编译器大括号里面的是一个变量

image126

提示浏览器使用指定编码解析html文件

image128

 

PHP代码执行过程

PHP是以中脚本语言, 也是一种解释型语言

Index.c

Index.java ====》 index.class ==è执行index.class文件

前面两种都需要先进行编译,产生一个执行文件

Index.php ======》解释

image130

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/2081.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2017年5月2日 19:47
下一篇 2017年5月3日 00:40

相关推荐

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息