关于php: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是动静类型语言,所以变量类型是在运行时依据上下文决定的。当然也能够通过显示/隐式的形式转换数据类型

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理