PHP数据类型

本文是复习所写,并不会涵盖一些基础知识点

PHP中总共是4中标量类型、4种复合类型、2种特殊类型

标量类型

  1. bool

  2. int

    GMP, GNU Multiple Precision, 用于处理任意长度整数

    BC Math, 任意精度数学, 提供了加、减、乘、除、余等操作函数

  3. float

     <?php
     $a = 1.23;
     $b = 1.2e3;
     $c = 7E-10;
     $d = 1_324.33; // 从PHP7.4.0开始支持

    浮点运算可能会产生NAN, 不代表任何值,所以不能跟任何值比较,包括自身。基于此PHP专门提供了is_nan()函数来检查是否是NAN

    浮点数比较得话有两种方式:

     <?php
     // 第一种,使用BC Math函数 推荐
     $a = 231.222;
     $b = 231.22222;
     bccomp($a, $b);
     ​
     // 第二种,与机器极小值比较
     $epsilon = 0.0001;
     if (abs($a-$b) < $epsilon) {
         echo '两数相等';
     }
  4. string

     <?php
     /* 
      * 单引号
      * 最纯净的string,不会解析变量与特殊字符
      * ' \ 在单引号string中有特殊作用,要想输出这两个字符需要在前面用 \ 转义一下
      */
     $a = '字符串';
     $b = '字\'符串';
     $c = '字符\\串';
     ​
     /* 
      * 双引号
      * 最重要的就是会解析变量
      */
     $d = "这是双引号{$a}";
     ​
     /*
      * Heredoc结构
      * 以<<<加标识符换行开始,换行以标识符结束.开头标识符双单引号可省略
      * 规则跟双引号字符串一致
      */
     $g = 'c';
     $e = <<<"Eof"
     这是Heredoc{$a}
     这是Heredoc${$g}
     Eof;
     ​
     /*
      * Nowdoc结构
      * 以<<<加标识符换行开始,换行以标识符结束.开头标识符必需使用单引号
      * 规则跟单引号字符串一致
      */
     $f = <<<'Eof'
     这是Nowdoc字符串
     Eof;

    PHP并没有明确指明string的编码,因此string会被按照源码文件的编码来编码, 推荐使用UTF8-BOM编码

    对于多字节字符串需要使用多字节字符串函数来处理,即mb_开头的函数

    字符串可以通过下标来操作

复合类型

  1. array

    PHP中的array实际上是一个有序映射. 它可以被视为数组、列表(向量)、哈希表、字典、集合、堆栈、队列等

    array_merge($arr1, $arr2)同名字符串key arr2将会覆盖arr1;$arr1+$arr2同名字符串key arr1覆盖arr2

    纯数字key数组合并会重建索引,字符串数字混合key则不会

  2. object

  3. callable

  4. iterable PHP7.1 新增

    指的是array或实现了Traversable接口的对象, 标识是可以使用foreach迭代

    使用array、实现Traversable接口、生成器都可创建可迭代对象

特殊类型

  1. resource

  2. null

PHP是动态类型语言,所以变量类型是在运行时根据上下文决定的。当然也可以通过显示/隐式的方式转换数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值