前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP数据类型

PHP数据类型

原创
作者头像
码一
发布2022-05-30 11:01:10
8620
发布2022-05-30 11:01:10
举报
文章被收录于专栏:码园

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

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

标量类型

  • bool
  • int GMP, GNU Multiple Precision, 用于处理任意长度整数 BC Math, 任意精度数学, 提供了加、减、乘、除、余等操作函数
  • float
代码语言:txt
复制
<?php
$a = 1.23;
$b = 1.2e3;
$c = 7E-10;
$d = 1_324.33; // 从PHP7.4.0开始支持

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

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

代码语言:txt
复制
<?php
// 第一种,使用BC Math函数 推荐
$a = 231.222;
$b = 231.22222;
bccomp($a, $b);
   
// 第二种,与机器极小值比较
$epsilon = 0.0001;
if (abs($a-$b) < $epsilon) {
    echo '两数相等';
}
  • string
代码语言:txt
复制
<?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_开头的函数

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

复合类型

  • array PHP中的array实际上是一个有序映射. 它可以被视为数组、列表(向量)、哈希表、字典、集合、堆栈、队列等 array_merge($arr1, $arr2)同名字符串key $arr2将会覆盖$arr1;$arr1+$arr2同名字符串key $arr1覆盖$arr2 纯数字key数组合并会重建索引,字符串数字混合key则不会
  • object
  • callable
  • iterable PHP7.1 新增 指的是array或实现了Traversable接口的对象, 标识是可以使用foreach迭代 使用array、实现Traversable接口、生成器都可创建可迭代对象

特殊类型

  • resource
  • null

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档