PHP常见数据类型


前言

数据类型在php中指的是存储的数据本身的类型,而不是变量的类型,PHP是一种弱类型语言,变量本身没有数据类型。本文介绍了PHP几种常见的数据类型【String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值),Callable(回调),Resource(资源)】。


一、String(字符串)

  • 字符串是PHP简单(标准)数据类型之一。
  • 一个字符串 string 就是由一系列的字符组成。
  • 每个字符等同于一个字节,所以只能支持256的字符集。
  • 字符串由什么值来组成并无限制,string最大可以达到2GB。
  • 字符串会被按照该脚本文件相同的编码方式来编码。
  • 字符串可以用 ‘.’(点)运算符连接起来。
  • 字符串的四种表达方式:
    1、单引号:用单引号把字符串包围起来(字符 ')。
    注:使用反斜杠进行转义,要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\)。在单引号字符串中的变量和特殊字符的转义序列将不会被替换。
    2、双引号:用双引号把字符串包围起来(字符 ")。
    注:对一些特殊的字符会进行解析,\n换行,\r回车,\t水平制表符,\v垂直制表符,\e ESCAPE,\f换页,\\反斜杠,\$美元标记,\"双引号
    3、Heredoc:句法结构<<<,在该运算符之后要提供一个标识符,然后换行,接下来是字符串string本身,最后要用到前面定义的标识符作为结束标志。结束时所引用的标识符必须在该行的第一列,该行除了有一个分号外,不能有其他字符。类似于双引号字符串。也会进行变量解析。
    4、Nowdoc:结构类似Heredoc,但是跟在后面的标识符要用单引号括起来,如:<<<‘Ex’。类似于单引号字符串,不进行解析操作。
$str = 'Hello World';
echo '$str';	//会输出字符串$str,单引号不进行解析操作
echo "$str";	//会输出Hello World,双引号进行解析操作
$str = <<<Ex
	This is a "test".	//Heredoc
Ex;
$str = <<<"Ex"
	This is a test.		//Heredoc
Ex;
$str = <<<'Ex'
	This is a test.		//Nowdoc
Ex;
  • 双引号和Heredoc会进行解析操作,变量的解析分为简单规则和复杂规则。
    1、简单规则:当PHP解析器遇到$符时,去组合尽量多的标识以形成一个合法的变量名。可以用花括号来明确变量名的界线。
    2、复杂规则:是指可以使用复杂的表达式。用花括号 { 和 } 把它括起来即可
  • 存取和修改字符串中的字符:字符串中的字符可以通过以0开始的下标,来访问及存取。用超出字符串长度的下标写入将会拉长该字符串并以空格填充。非整数类型下标会被转换成整数。用负数下标读取字符串时返回空字符串。
  • 转换成字符串:一个值前面加上(string) 或用 strval() 函数来转变成字符串。布尔的true会转换为字符串的’1’,false会被转换为空字符串。整型和浮点型会转换为数字的字面样式的字符串。数组会转为字符串’Array’。对象会转为字符串’Object’。资源会被转为字符串"Resource id #1"。NULL会被转为空字符串。
$str = 'hello world';
echo $str;		//输出hello world
echo $str[1];	//输出e
echo $str{1};	//输出e
echo $str[20];	//用超出字符串长度的下标写入将会拉长该字符串并以空格填充。输出空格。
echo $str['1'];	//输出e,非整数类型下标会被转换成整数。

二、Boolean(布尔)

  • 布尔类型是PHP简单(标准)数据类型之一。
  • 布尔表达了真值。可以为true或者false(不区分大小写)。
  • 转换为布尔值。用(bool)或者(boolean)来强制转换。当转换为boolean时,以下值被认为是false:布尔值false本身 、整型值0、浮点型0.0、空字符串,及字符串"0"、不包括任何元素的数组、null

三、Integer(整型)

  • 整型是PHP简单(标准)数据类型之一。整数必须有至少一个数字(0-9)。不能包含小数点、逗号、空格等。
  • 十进制,十六进制(数字前必须加上0x),八进制(数字前必须加上0)或二进制(数字前必须加上0b)表示。
  • PHP7.4.0之后整型数值可以包含下划线,如$int = 1_2_3_4;
  • 整型数的字长跟平台有关,最大值可用常量PHP_INT_MAX获取,最小值可用常量PHP_INT_MIN获取。字长可用常量PHP_INT_SIZE获取。
  • 溢出。如果给定的数超过integer的范围,会被解释为浮点型。
  • 转换为整型。用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个 integer 参数时,值会自动转换。还可以通过函数 intval() 来将一个值转换成整型

四、Float(浮点型)

  • 浮点型是PHP简单(标准)数据类型之一。有小数点或指数形式的数字。
  • 浮点型也叫浮点数,双精度型。
  • 字长和平台有关,精度有限。要测试浮点数是否相等,要使用一个仅比该数值大一丁点的最小误差值。该值也被称为机器极小值(epsilon)或最小单元取整数,是计算中所能接受的最小的差别值。

五、Array(数组)

  • 数组是PHP复合数据类型中的一种。实际上是一个有序映射。简单来说,就是将值关联到键的映射。
  • 定义数组,可以用array()来定义,也可以用[]代替array()。key可以是string或者intger,value可以是任意类型。如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。
  • 如果数组定义中多个单元都使用了同一个键名,则只使用最后一个,之前的被覆盖。
$arr1 = array('key1'=>'value1','key2'=>'value2');
$arr2 = array('key1'=>'value1','key2'=>'value2',);	//最后一个数组单元之后的逗号可以省略
$arr3 = ['key1'=>'value1','key2'=>'value2'];
$arr4 = ['value1','value2','key1'=>'value3','value4'];	//关联数组、索引数组组合

六、Objetc(对象)

  • 对象是PHP复合数据类型中的一种。
  • 在 PHP 中,对象必须声明。
    首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
    然后我们在类中定义数据类型,然后在实例化的类中使用数据类型。
class Name{
	function getName(){
		echo "my name is PHP.";
	}
}
$name = new Name();		//new一个对象
$name->getName();		//执行对象里的方法getName()

七、Null(Null)

  • NULL是PHP特殊数据类型中的一种。表示一个变量没有值,或者值为NULL(不区分大小写)。
  • 1、变量被赋值为NULL。2、变量还未被赋值。3、被unset()后的变量。以上三种情况变量都被认定为NULL。

八、Resource(资源)

  • Resource是PHP特殊数据类型中的一种。资源类型的变量是一种保存到了外部资源的一种引用。通过专门的函数来建立和使用的。

九、Callback(回调)

  • 一些函数如 call_user_func() 或 usort() 可以接受用户自定义的回调函数作为参数。回调函数不止可以是简单函数,还可以是对象的方法,包括静态类方法。

总结

以上就是今天要讲的内容,本文主要介绍了PHP9种数据类型。

标准类型——字符串:一个字符等于一个字节,最大2GB,按脚本文件相同的编码方式来编码。"."(点)运算符进行连接。单引号、双引号(进行解析)、Heredoc(进行解析,相当于双引号,结束符要顶格,后面加分号;)、Nowdoc(结构同Heredoc,但是用单引号,不解析)。解析规则(简单规则和复杂规则)。转换为字符串(一个值前面加上(string) 或用 strval() 函数)。

标准类型——布尔:表达了真值。true或者false(不区分大小写)。
转换为布尔值(用(bool)或者(boolean))。

标准类型——整型:必须有至少一个数字(0-9)。十进制,十六进制(0x),八进制(0)或二进制(0b)。字长跟平台有关。字长PHP_INT_SIZE。最大值PHP_INT_MAX。最小值PHP_INT_MIN。溢出会转为浮点型。转换((int) 或 (integer)或intval())。

标准类型——浮点型:有小数点或指数形式的数字。字长和平台有关,精度有限。要测试浮点数是否相等,要使用机器极小值。

复合类型——数组:键值对。array()或者[]。索引数组、关联数组。

复合类型——对象:对象使用必须申明。new一个。

特殊类型——Null:未被赋值,或者赋值为null,或被unset,不区分大小写。

特殊类型——资源:是一种保存到了外部资源的一种引用。

特殊类型——回调

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值