传智播客PHP学习笔记第三天6页
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时间戳表示时间的方法,
从某一个时刻(1970-1-1 0:0:0)开始,到当前,没过一秒,数加1;
这个数据也是在计算机内采用一个整型数据来表示的。
浮点数:双精度数。
定义浮点数可以采用科学计数法
//在描述的时候,通常
Number = int + float
特别注意:由于使用浮点数时需要表示精度,因此有些数据在保存的时候,会丢失精度。所以不要通过判断两个浮点数是否相等来获得业务逻辑。
字符串:
定义字符串
单引号
使用单引号包含需要定义的字符串内容即可:
双引号:
单引号与双引号的根本区别在于,是否可以解析字符串内部的变量。
双引号可以解析,而单引号不行。
因此双引号的解析速度要低于单引号的解析速度,能够使用单引号就尽量使用单引号。
如果使用单引号定义时,需要定义的字符串内部包含单引号
碰到这个情况,应该转义内部的引号:
究竟哪个变量会被解析?
是否能被解析取决于是单引号还是双引号定义的:
如果在解析变量时不能清晰的区分变量名,那么不能正确的识别需要解析的变量:
可以在需要解析的变量周围使用大括号包含起来:
大括号在双引号内,碰到$时,会去解析:
转义符号的使用\ 的使用:
如果在字符串的最后使用转义字符时:
需要将最后的转义字符\ 进行转义:
在双引号定义字符串时,转义字符还有特殊的含义,可以转义很多有其他含义的字符:
还可以转义8进制或者16进制数,所对应的ascii码内的字符:
a 97
A 65
除了单引号和双引号,还有两种定义字符串的方式:
当需要定义一个比较复杂的字符串时,此时单引号和双引号就略显乏力。
复杂:1,多行2,包含一些需要特殊处理的字符
Php还支持一种专门定义复杂字符的形式,定界符:
Heredoc nowdoc
<<<定界符的开始标记
字符串的内容
内容
定界符的结束标记
其中开始标记与结束标记应该一致
Heredoc
Nowdoc
Heredoc与nowdoc在形式上,只有开始的标签有区别,nowdoc的开始标签存在单引号。
在使用上,heredoc类似双引号可以解析内部的变量,而nowdoc不能解析内部的变量。
总结:如果单引号,双引号,定界符,都是为定义字符串而用。
强调,我们经常使用定界符的形式来定义html代码javascript代码字符串。
注意:关于定界符的结束标记:有个严格的要求
结束标记只能单独在一行,而且在此行不能存在其他字符。(必须定格写)
布尔类型
真假
布尔型只有2个值true 表示真false表示假,不区分大小写
有时可能会使用1 或者0 表示true或false。但是注意,1,0 是在运行时被转换成了true和false 1,0本身并没有真假的含义。
复合数据类型,一个数据表示多个值
无论数组还是对象多应该可以保存多个值。
数组:
是一组数据的集合。
如何使用数组内的某个值呢?如何定位一个数组内的元素。
数组是由元素组成的。
元素是由一个键值对来表示的。一个元素是由一个键对应上一个值来标志
我们是通过数组元素的键,来引用某个元素的值的。
定义一个数组:
采用array()的语言结构:
元素与元素之间采用逗号分割。而元素键与值之间使用=> 来表示
获得一个数组的元素的值:
利用中括号语法,来定位数组内的某个键值对:
我们可以通过中括号语法,获得某个数组元素的值,设置某个数组元素值,为数组增加元素,删除某个数组元素。
判断一个数组内是否存在某个元素:
创建数组的另外的形式:
元素的下标:
一个数组元素的下标只能是字符串型或者是整型。
我们在定义数组元素时,可以不指定元素下标:那么系统会为元素自动分配整型下标。整型的值是当前已存在的数组元素的最大的整型下标+1;默认是从0开始。
[]的额外用法:
字符串如果被看成是字符的集合的话,那么每一个字符就是字符串内的某个元素。
因此,我们在访问字符串时,可以通过中括号语法来获得字符串内的某个字符元素。
字符串的特殊性还在于:上面的中括号,还可以使用大括号来代替:
注意,以上的操作,下标的位置是从0开始,每个字节增加一个。
1111 1111 0000 0000 255 0
当一个字符串内的字符不是由单字节组成的话?
字符:我们看到的(汉字,英文字母,数字等等)
字节:8个bit位。
很多字符都是有多字节组成的:
例如
在utf8编码下汉字由3个字节组成。
康3个字节
中括号(大括号)获取某个字符元素的操作是有限制的,仅仅使用与所有的字符都是单字节字符的情况。
符gbk编码下一个汉字占用2个字节。
对象:
由于是集合数据类型,就应该至少提供保存多个值的能力。
除此之外,对象还可以有处理保存的数据的能力。
有时会将对象称之为有生命力的数组。
特殊数据类型
资源
在通过php去操作不完全属于PHP的资源时。例如数据库的连接管理,操作文件的管理。都会产生资源:
不能通过用户手动创建,而需要通过php的内置函数来获得资源。
同样都是资源型数据,但是也有类型之分:
NULL
NULL只有一个值就是NULL 不区分大小写。
表示什么都没有。
不是0
不是空字符串‘’;
当我们直接使用一个不存在的变量时:
当使用一个被unset掉了的变量时:
当为一个变量赋值为NULL时:
有时将一个对象赋值为null,用于销毁该对象。
伪类型:
在进行对程序的描述时,有时需要某些不存在的类型:
1,number 指的是整型和浮点型。
2,mixed类型:类型不确定,可能是多个类型之一:
3,callback,指的是期望的数据是一个可以被调用执行的函数。(回调)
4,callable,指的是期望的数据是一个可以被调用的结构。指的是一个对象的方法。(可调)类型转换:
为了保证程序的顺利执行,会在执行过程中,将数据向合适的类型做转换。转换的过程分成(强制,自动)。称之为类型转换;
其中:
强制类型转换:用户通过用户脚本将数据进行类型转换。(手动类型转换)
自动类型转换:不需要用户脚本参与系统将类型自动发生变化。
如何强制
(希望转换数据类型) 数据
希望转换数据类型
Bool
Int
float
String
Array
Object
unset