PHP(4)PHP数据类型

本文详细介绍了PHP中的数据分类,包括基本数据类型(整型、浮点型、字符串和布尔型)、复合数据类型(数组和对象)及特殊数据类型。重点讲解了数值型、字符串处理、数组(一维和二维)的使用,类型判定和转换技巧。

一、数据分类

PHP中数据类型分为三大类八小类:

  • 基本数据类型(标量数据类型)
    • 整型(int / integer):存储整数数据
    • 浮点型(float):存储小数数据和超过整型范围的整数数据
    • 布尔型(bool / Boolean):存储布尔类型数据
    • 字符串型(string):存储字符串类型
  • 复合数据类型
    • 数组型(array):存储数组数据(即多个数据存放到一个变量中)
    • 对象型(object):存放对象数据,由类实例化得到(面向对象)
  • 特殊数据类型
    • 资源型(resource):存储外部资源数据(数据库资源、文件资源)
    • 空型(null):空量没有存储任何数据

二、数值型

1. 整型

整型使用8个字节存储数据。

<?php

//常见整型
$num1 = 123;

//八进制,使用0前缀
$num2 = 0123;

//十六进制,使用0x前缀
$num3 = 0x123;

//二进制,使用0b前缀
$num4 = 0b11101;

2. 浮点型

浮点型数据使用8个字节存储数据。

<?php

$f1 = 1.23;
$f2 = 1.23e3;

三、字符串

  • 单引号中只能解析少量的转义字符:\' \
  • 双引号中能解析较多的转义字符:\$ \" \n \t \
  • 双引号能够解析嵌套在字符串中的PHP变量
  • 用大括号包裹的变量系统理解为一个独立变量。$str = "{$a}bc"

考虑到有些字符串很长,而且有格式存在。PHP针对单引号和双引号做了一层扩展:nowdoc结构(单引号)和heredoc结构(双引号)

  • nowdoc是类似单引号功能
  • heredoc是类似双引号功能
  • nowdoc和heredoc在内部的所有内容都是属于字符串本身(不能写注释)
  • nowdoc和heredoc开始符号后不能有任何内容
  • nowdoc和heredoc结束符号必须顶格,且后面除了语句结束符不能有任何内容
<?php

$str = 'hey';

//nowdoc
$str1 = <<<'END'
    $str, world<br>
END;

//heredoc
$str2 = <<<END
    $str, world
END;

echo $str1;  // $str, world
echo $str2;  // hey, world

在这里插入图片描述

四、数组

1. 一维数组

<?php

//使用 array 关键字定义数组
$arr1 = array('name', 'age');

//使用 [] 定义数组
$arr2 = ['name', 'age'];

//针对变量增加元素方式定义数组
$arr3[] = 'name';

//访问数组
echo $arr1[0];  // ‘name'
  • PHP数组可以动态增加元素
  • 数组元素的值可以是任意数据类型
  • 数组元素下表可以是纯数字(索引数组)、纯字符(关联数组)、混合数字和字符串(混合数组)
<?php

//索引数组
$arr1 = array(1,2,3,4,5);

//关联数组
$arr2 = ['name' => '张三', 'age' => 30];

//混合数组
$arr3[] =  array(1,2,'name' => '张三', 'age' => 30);

//访问
echo $arr1[0];  // 1
echo $arr2['name'];  // 张三
  • 如果默认增加元素,系统自动从最大下标开始+1
  • 增加一个小于已有索引值的元素,系统不会自动根据索引大小排序

2. 二维数组

<?php

$arr1 = array(1,2,3,4,5);
$arr2 = ['name' => '张三', 'age' => 30];
$arr3[] =  array(1,2,'name' => '张三', 'age' => 30);

//二维数组
$arr = array($arr1, $arr2, $arr3);

//获取张三的年龄
echo $arr[1]['age'];  // 30

五、类型判定

系统函数判定数据类型,函数格式使用 is_ 开头。

<?php

$arr1 = array(1,2,3,4,5);
$str = 'str';
$num = 1;

var_dump(is_numeric($num));  // bool(true)
var_dump(is_null($str));  // bool(false)

六、类型转换

1. 自动转换

PHP会自动根据数据要参与的运算场景来将不符合条件的数据类型的数据转换成目标类型数据。

字符串转换成数值规则

  • 第一个字符是字母或其他特殊符号,结果是0
  • 第一个字符是数字,可以依次往后保留,直到不是数字为止
  • 如果在数字往后推的情况下,碰到第二个小数点结束(保留一个小数点)

2. 强制转换

转换方式是数据变量前使用(目标数据类型)。

<?php

$str = '1.2.3.abc';

echo (float)$str;  // 1.2
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iFulling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值