PHP(4)PHP数据类型

  • 一、数据分类
  • 二、数值型
    • 1. 整型
    • 2. 浮点型
  • 三、字符串
  • 四、数组
    • 1. 一维数组
    • 2. 二维数组
  • 五、类型判定
  • 六、类型转换
    • 1. 自动转换
    • 2. 强制转换

一、数据分类

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

PHP(4)PHP数据类型相关推荐

  1. Postman使用Date数据类型,Postman发送Date类型数据,Postman模拟前端调用

    Postman使用Date数据类型: 在form-data数据类型下,使用 2021/7/7 11:11:00 (yyyy/MM/dd HH:mm:ss) 的数据格式即可 如下: 在json数据格式中 ...

  2. 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint

    在对比oracle数据库和大数据库的时候,发现了几个用以存放数字的新的类型bigint.decimal.smallint.tinyint,为了对比之间的不同,我进行了统计 bigint 可以精确的表示 ...

  3. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  4. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  5. 数据类型对应的字节数

    20210622 https://www.icode9.com/content-4-421680.html 32位和64位常用数据结构所占字节数 20210126 1 2 4 8 1248 刚好都是2 ...

  6. tensorflow2.0 基础一 常用数据类型及转换

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_43619065/arti ...

  7. 深入浅出Redis五种基本数据类型

    文章目录 1.String SDS(Simple Dynamic String) 2.RedisDB设计 3.List 4.Hash 5.Set intset 6.ZSet skiplist 1.St ...

  8. TVM自定义数据类型

    TVM自定义数据类型 本文将介绍"自定义数据类型"框架,该框架可在TVM中使用自定义数据类型. 介绍 在设计加速器时,关键是如何近似地表示硬件中的实数.这个问题具有长期的行业标准解 ...

  9. 自主数据类型:在TVM中启用自定义数据类型探索

    自主数据类型:在TVM中启用自定义数据类型探索 介绍 在设计加速器时,一个重要的决定是如何在硬件中近似地表示实数.这个问题有一个长期的行业标准解决方案:IEEE 754浮点标准.1.然而,当试图通过构 ...

  10. 基本数据类型转换规则

    基本数据类型转换规则 前言 一. byte.short.char运算的规则 二. 多种数据类型混合运算规则 三.总结 前言 在这篇文章中,我对Java的基本类型数据类型的混合运算做了一些总结,希望可以 ...

最新文章

  1. 安装eclipse的maven插件
  2. Nginx 502 bad gateway的解决方案
  3. irrlicht1.3中文支持
  4. 在linux中的sort命令,linux中sort命令
  5. springboot的原生cache_springboot-shiro-redis-session-cache
  6. Python面试常用二十题总结
  7. 数据产品经理为什么吃香?
  8. mysql配置master_mysql 主从配置(master/slave)
  9. Mysql取分组中前N条记录
  10. 从问题出发,解密Oracle rdba结构
  11. linux 远程赋值,linux 简单远程复制命令scp参数
  12. 异常日志处理-ThrowsAdvice
  13. Spring官网改版后下载
  14. android悬浮控件-仿360手机助手应用详情页
  15. 机器学习的几种主要学习方法
  16. fiddler——一款莱斯的抓包工具
  17. 中巨伟业加密芯片—SMEC98SP (SE98)在产品授权生产防复制的应用方法
  18. 卸载pip包并卸载其依赖包
  19. PyQt5简易本地视频播放器
  20. Layui的管理系统的模板

热门文章

  1. 备忘录-团队选题报告
  2. Fresco原理分析
  3. Vue用etable实现甘特图
  4. idea浅色主题及代码字体颜色配置
  5. python里的属性是什么_python属性 python 里的属性是什么意思?
  6. 编译原理之语法分析(预测分析法)
  7. 物联网工程专业属于计算机类吗,物联网工程属于计算机专业吗
  8. FFmpeg常用命令大全,并简单封装
  9. 判断素数的方法(普通篇)
  10. Hardware ---常用的接口和通信协议SPI