PHP基础知识(一)

2021-02-20 16:19

阅读:394

标签:精度   方便   数学函数   解释   info   函数   开头   类型   redo   

Boolean类型

要明确地将一个值转换成boolean,用(bool)或者(boolean)来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制结构需要一个boolean参数时,该值会被 自动转换。

当转换为boolean时,以下值被认为时FALSE:

1.布尔值FALSE本身

2.整型值0

3.浮点型值0.0

4.空字符串,以及字符串"0"

5.不包括任何元素的数组

6.不包括任何成员变量的对象(仅PHP4.0适用)

7.特殊类型NULL

8.从空标记生成的SimpleXML对象

所有其它值都被认为时TRUE(包括任何资源)

技术图片

Integer类型

整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(-或者+)。二进制表达的Integer自PHP5.4.0起可用。要使用八进制表达,数字前必须加上0,要使用十六进制表达,数字前面必须加上0x,要使用二进制进行表达,数字前必须加上0b。如果给定的一个数超过了integer范围,将会被解释为float。同样如果执行的运算结果超出了integer范围,也会返回float。

整型的字长和平台有关,尽管通常最大值约为二十亿(32位有符号)。64位平台下的最大值通常是大约9E18。PHP不支持无符号整数。Integer值的字长可以用常量PHP_INT_SIZE表示,自PHP4.4.0和PHP5.0.5后,最大值可以用常量PHP_INT_MAX来表示。

要明确地将一个值转换为Integer,用(int)或者(integer)强制转换。不过大多数下都不需要强制转换,因为当运算符,函数或流程控制需要一个integer参数时,值会自动转换。还可以通过函数intval()来将一个值转换成整型。

技术图片

测试结果:

技术图片

Float浮点型

永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者gmp函数。如上述警告信息所言,由于内部表达式地原因,比较两个浮点数是否相等是有问题的。不过还是有迂回的办法来比较浮点数值的。

要测试浮点数是否相等,要使用一个仅仅比该数值大一丁点的最小误差值。该值也被称为机器极小值(epsilon)或最小单元取整数,是计算所能接受的最小的差别值。

$a和$b在小数点后五位内精度是相等的。

技术图片

 测试结果:

技术图片

NaN

某些数学运算会产生一个由常量NaN所代表的结果。此结果代表着一个在浮点数运算中未定义或不可表述的值,任何拿此值与其它任何值进行的松散或严格比较的结果都是False。由于NaN代表任何不同值,不应该拿NaN去和其它值进行比较,包括其自身,应用is_nan()来检查。

String字符串

单引号(不能解析变量

定义一个字符串的最简单的方法是用单引号把它包围起来(‘)。

双引号

如果字符串是包围在双引号(")中,PHP不仅可以解析变量还可以对一些特殊的字符进行解析:

技术图片

Heredoc结构(用于输出一大段HTML代码,也可以解析变量)

第三种表达式字符串的方法是用heredoc语法结构:标识符

作为结束标志。结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守PHP的规则:只能包含字符、数字和下划线,并且必须以字母和下划线作为开头。

Heredoc结构不能用来初始化类的属性。自PHP5.3起,此限制仅对Heredoc包含变量时有效。

技术图片

 测试结果:

技术图片

 

Nowdoc结构(类似于单引号,不能解析变量)

就像Heredoc结构类似于双引号字符串,Nowdoc结构是类似于单引号字符串的。Nowdoc结构很像Heredoc结构,但是Nowdoc中不进行解析操作。这种结构就很适合用于嵌入PHP代码或其它大段文本而无需对其中的特殊字符进行转义。

一个Nowdoc结构也用和Heredoc结构一样的标记Nowdoc结构可以用在任意的静态数据环境中,最典型的示例是用来初始化类的属性或常量。

技术图片

测试结果:

技术图片

变量解析

当字符串用双引号或Heredoc结构定义时,其中的变量将会被解析。这里共有两种语法规则:一种简单规则,一种复杂规则。简单的语法规则是最常用和最方便的,它可以用最少的代码在一个string中嵌入一个变量,一个array的值,或一个object的属性;复杂规则语法的显著标记是用花括号包围表达式。

PHP基础知识(一)

标签:精度   方便   数学函数   解释   info   函数   开头   类型   redo   

原文地址:https://www.cnblogs.com/xiaojiang0414/p/12916142.html


评论


亲,登录后才可以留言!