关于php:PHP数据类型

45次阅读

共计 1187 个字符,预计需要花费 3 分钟才能阅读完成。

本文是温习所写,并不会涵盖一些根底知识点

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