php常量与数据类型
常量
常量类似变量,但常量一旦被定义就无法更改或撤销定义
常量more并未大小写敏感,常量名要用大写字母
常量的值只能是标量,如整型,浮点型,布尔型,NULL,字符串等,不能是数组,对象,资源
注意:函数局部访问全局常量,不需要使用global
基本语法
deifne(“常量名”,常量值,布尔值?);
const 常量名 = “常量值”;
案例
数据类型
标量类型
浮点型
浮点型数据,是存在精度问题
不要相信浮点数结果精确到了最后一位
不要比较两个浮点数是否相等
需要更高的精度你应该使用任意精度数学函数或gmp函数
整型
常说的整数,包括正数和负数
整形可以用三种格式来指定:十进制,十六进制(0x开头),八进制(0开头)
字符串类型
在字符串中,双引号可以识别变量,单引号不识别变量
在单引号字符串中的变量的特殊字符的转义序列将不会被替换
用双引号定义的字符串最重要的特征是变量会被解析
Heredoc类型
变量不需要用连接符来拼接,这对于我们格式化输出内容很有用
必须要提示符和标识符
<<<提示符
标识符可以自定义一般的有EOT ,EOD EOF 等, 只有保持开始表示符和结束表示符一样即可
案例
植入HTML
类似于JS中的模板字符串
布尔类型
不区分大小写
is_bool
检测数据是否为布尔类型
复合类型
数组
数组实际上是一个有序映射,数组能够在单个变量中存储多个值
映射值两个元素的集之间元素的相互“对应”的关系
索引数组
带有数字ID的数组
案例
系统自带的id
自定义的id
通过指定的id删除内容
关联数组
带有指定的键的数组,每个键关联一个值
多维数组
包含一个或多个数组的数组
对象
是存储数据和有关如何处理数据的信息的数据类型
是系统中又来描述客观事物的一个实体,是构成系统的一个基本单位
一个对象由一组属性和对这组属性进行操作的一组服务组成
类
对象的来源
有内置的类,也可以自定以一个类
类属性
类方法
注意:this关键字指向实例对象
特殊类型
NULL
不表示空格,也不表示0,也不是空字符串,表示一个变量的值为空
null不区分大小写
标示变量是否为空。也用与区分空字符串与空值数据
可以通过把值设置为null,将变量清空
三种情况会被认为是null类型
- 被赋值为null
- 尚未被赋值
- 被unset()销毁指定的变量
is_null
检测变量是否为Null
资源(resource)类型
在php中,我们经常到类型变量,MySQL连接,文件句柄等
这些变量无法使用标量来表示
资源数据类型是php4引进的
资源是一种特殊的变量类型,保存了到外部资源的一个引用,如打开文件,数据库连接,图形画布区域
$conn
一种资源变量,其他函数都会引用这个变量来执行其他操作
如php操作数据库之前,必须要建立到数据库的链接
$conn=mysql_connect(“localhost”,“root”,“123456”)
然后对数据库的进一步操作需要使用链接
mysql_select_db(“test”, $conn)
释放资源
由于php 4Zend 引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和java一样)
这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放,因此,很少需要手工释放内存
弱类型转换
转换成字符串
- 一个值可以通过在其前面加上(string)或用strval()函数来转变成字符串
- 在一个需要字符串的表达式中,会自动转换为string
- NULL总是被转换成空字符串