PHP学习笔记(一)

NULL

转换到NULL的特性,从PHP7.2开始废弃,8.0.0起被移除

Boolean 布尔类型

使用常量true和false 不区分大小写

-1 和其他非零值(不论正负)一样,都是true

Integer 整型

语法

使用八进制表达必须加上0,PHP8.1.0后可以加上0o或者0O,使用十六进制表达必须加上0x,二进制加上0b

PHP7.4.0后整型数值可能会包含下划线 _ , 展示的时候会自动过滤

整型溢出

溢出会返回float

整数除法通过intdiv()实现,强转忽略小数点,可用round()进行四舍五入

整型转换

从浮点型进行转换,向零取整,PHP 8.1.0后 会发出弃用通知

浮点数溢出时,结果为未定义

未知的分数强制转换成int会有不可预料的后果

从其他类型转换,无定义

Float浮点型

比较浮点数

比较浮点数通过eps误差

NaN

那NaN和其他任何值进行比较都是false,除了true

--宽松返回true,看值,严格返回false,类型不同

String 字符串

语法

单引号和双引号的区别是可以解析 '\' 和 '\\' 但是不解析变量和转义字符,他可以直接输出转移字符如\n,但无法实现换行

heredoc结构 (类似双引号字符串)

<<< 之后提供一个结束标识符,然后换行,接下来是字符串本身,结束标识符可以使用空格或者tab缩进

如果结束标识符的缩进超过内容任何一行,将抛出ParseError异常,制表符和空格不能混用,会抛出异常

7.3后不需要在结束标识符后面跟分号或者换行符,可以在结束标识符后继续表达式,但是如果在某一行的开头找到了结束标识符,那么就可能被看作结束标识符并引起ParseError

在7.3前带有结束标识符的行不能包含除‘;’外的任何字符。

Nowdoc结构 (类似单引号字符串)
  1. 结束标识符需要用单引号括起来

  2. Nowdoc结构在PHP 5.3.0中加入

字符串插值

用双引号或heredoc结构定义是,其中的变量可以替换

${expresssion} 这个用法,从PHP 8.2.0开始被弃用,because可能被解释为可变变量

可以插入数组,在PHP 7.1后支持负数字索引

高级语法

允许使用任意访问器对变量进行插值,这种语法要紧跟在{后面的$才会被识别

存取和修改字符串中的字符

可用类似array的结构来访问 $str[42]

字符串下标必须为整数或可转换为整数的字符串,否则会发出警告。

有用的函数和运算符

字符串可用'.'连接。

转换成字符串

数组array总是转换成字符串"Array"不能直接显示该数组的内容,可用echo $arr['foo'] 这种结构显示

字符串类型详解

实现方式是一个由字节组成的数组再加上一个整数指明缓冲区长度。

数字字符串

如果一个PHP string 可以被解释为int 或 float 类型 , 则它被视为数字字符串

任何包含字母E周围是数字的字符串都将视为以科学计数法表示的数字

PHP 8.0.0前后

Array数组

语法

定义数组array()

类型转换与覆盖

key可以是int或者string 。 value可以是任意类型

如果key是Float 、 Bool 、 Null,会触发强制转换 , Array和object不能被用为键名,相同键名其他会被覆盖只有最后一个会被使用,其他会被覆盖。

PHP数组可以同时含有int和string类型,key未指定,就自动使用之前用过的最大int键名加上一作为新的键名

负数索引

PHP 8.3之前,分配负整数key n 会将下一个key分配给 0

方括号语法访问数组单元

花括号语法在PHP 7.4 中弃用,在PHP 8.0 中不支持

用方括号的语法新建/修改

类似字符串,需要注意的是从 PHP 7.1.0 起,对字符串应用空索引操作符会抛出致命错误。以前,字符串被静默地转换为数组。

数组解包

可以使用[ ] (自PHP 7.1起)或者list()语言结构解包数组

实用函数

数组做什么和不做什么

$foo[bar]错了

字符串表示的数组索引上加上引号foo['bar']

转换为数组

对于int 、 float 、 string 、 bool 和 resource 等类型 转换为array ,会是一个有且仅有一个元素的数组

对于object 可以是一个数组 , 其单元为该对象的属性,键名为成员变量名

ps
  1. 整数属性不可访问

  2. 私有变量会加上类名作前缀

  3. 保护变量会加上一个‘*’做前缀

比较

可用array_diff()和数组运算符来比较数组

Object 对象

对象初始化

使用new语句实例化一个类

转换为对象

一个对象转换成对象,它不会有任何变化,其他类型的值转换成对象会创建一个stdClass的实例

Enum 枚举

枚举基础

类型转换

enum转object无变化,enum转array,纯粹枚举会创建单个name键的数组,回退枚举会创建带name和value键的数组,其他的转换会报错

参考资料

PHP: PHP 手册 - Manual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值