PHP 数据类型--详解

简介: PHP 数据类型--详解

PHP 变量存储不同的类型的数据,不同的数据类型可以做不一样的事情。

PHP 支持以下几种数据类型:

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)
  • Resource(资源类型)

PHP 字符串

一个字符串是一串字符的序列,就像 "Hello world!"。

你可以将任何文本放在单引号和双引号中:

1. <?php
2. $x = "Hello world!";
3. echo $x;
4. echo "<br>"; 
5. $x = 'Hello world!';
6. echo $x;
7. ?>

PHP 整型

整数是一个没有小数的数字。

整数规则:

  • 整数必须至少有一个数字 (0-9)
  • 整数不能包含逗号或空格
  • 整数是没有小数点的
  • 整数可以是正数或负数
  • 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。

在以下实例中我们将测试不同的数字。

PHP var_dump函数返回变量的数据类型和值:

1. <?php
2. $x = 5985;
3. var_dump($x);
4. echo "<br>"; 
5. $x = -345; // 负数 
6. var_dump($x);
7. echo "<br>"; 
8. $x = 0x8C; // 十六进制数
9. var_dump($x);
10. echo "<br>";
11. $x = 047; // 八进制数
12. var_dump($x);
13. ?>

PHP 浮点型

浮点数是带小数部分的数字,或是指数形式。

在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:

1. <?php
2. $x = 10.365;
3. var_dump($x);
4. echo "<br>"; 
5. $x = 2.4e3;
6. var_dump($x);
7. echo "<br>"; 
8. $x = 8E-5;
9. var_dump($x);
10. ?>

PHP 布尔型

布尔型可以是 TRUE 或 FALSE。

$x=true;

$y=false;

布尔型通常用于条件判断。在接下来的章节中你会学到更多关于条件控制的教程。

PHP 数组

数组可以在一个变量中存储多个值。

在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:

1. <?php
2. $cars=array("Volvo","BMW","Toyota");
3. var_dump($cars);
4. ?>

PHP 对象

对象数据类型也可以用于存储数据。

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:

1. <?php
2. class Car
3. {
4. var $color;
5. function __construct($color="green") {
6. $this->color = $color;
7.   }
8. function what_color() {
9. return $this->color;
10.   }
11. }
12. ?>

以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。

PHP NULL 值

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

可以通过设置变量值为 NULL 来清空变量数据:

1. <?php
2. $x="Hello world!";
3. $x=null;
4. var_dump($x);
5. ?>

PHP 资源类型

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。

常见资源数据类型有打开文件、数据库连接、图形画布区域等。

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

使用 get_resource_type() 函数可以返回资源(resource)类型:

get_resource_type(resource $handle): string

此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。

1. <?php
2. $c = mysql_connect();
3. echo get_resource_type($c)."\n";
4. // 打印:mysql link
5. 
6. $fp = fopen("foo","w");
7. echo get_resource_type($fp)."\n";
8. // 打印:file
9. 
10. $doc = new_xmldoc("1.0");
11. echo get_resource_type($doc->doc)."\n";
12. // 打印:domxml document
13. ?>


相关文章
|
监控 前端开发 网络协议
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
【7月更文挑战第20天】Fiddler是一款强大的HTTP协议调试代理工具,它的监控面板是核心功能,记录服务器的请求会话,包括HTTP和HTTPS。监控面板分为多个标签,如统计数据(Statistics)展示性能指标,Inspector用于查看请求和响应的详细内容,AutoResponder允许重定向请求到本地资源,Composer用于构造和调试HTTP请求,还有Orchestra Beta、Fiddler Script、Log和Filters等功能。
916 14
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
|
XML C语言 C++
Cppcheck 1.54 C/C++静态代码分析工具
Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型。   官方上建议让编译器提供尽量多的警告提示:1.使用Visual C++的话,应使用警告等级4 2.使用GCC的话,参看Warning options - using GCC   官方地址:http://cppcheck.sourceforge.net/ 当前版本:1.54 for windows   安装界面如下: 安装完后,双击cppcheckgui.exe启动其GUI程序: 工具栏第一个按钮 可以添加检测的目录,但是这里不支持中文路径。
2431 0
|
8月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过消息展现动态协作。强调时间顺序,可用于建模系统交互、展示并发进程。主要元素包括角色、对象、生命线、控制焦点和各类消息,如同步、异步与返回消息,支持自关联调用,直观呈现系统行为流程。
系统时序图
|
存储 算法 C++
【c++丨STL】set/multiset的使用
本文深入解析了STL中的`set`和`multiset`容器,二者均为关联式容器,底层基于红黑树实现。`set`支持唯一性元素存储并自动排序,适用于高效查找场景;`multiset`允许重复元素。两者均具备O(logN)的插入、删除与查找复杂度。文章详细介绍了构造函数、迭代器、容量接口、增删操作(如`insert`、`erase`)、查找统计(如`find`、`count`)及`multiset`特有的区间操作(如`lower_bound`、`upper_bound`、`equal_range`)。最后预告了`map`容器的学习,其作为键值对存储的关联式容器,同样基于红黑树,具有高效操作特性。
756 3
|
移动开发 JavaScript 数据可视化
使用高德地图实现地理围栏
使用高德地图实现地理围栏
8362 0
使用高德地图实现地理围栏
|
NoSQL 关系型数据库 Redis
高可用和性能:基于ACK部署Dify的最佳实践
本文介绍了基于阿里云容器服务ACK,部署高可用、可伸缩且具备高SLA的生产可用的Dify服务的详细解决方案。
|
7月前
|
测试技术 API 数据库
从零开始:为你的第一个Django项目搭建测试环境
本文手把手教你为Django博客项目搭建完整测试体系:从框架理解、测试配置、模型/视图/API分层测试,到工厂模式、CI集成与最佳实践,助你规避线上事故,提升开发信心与代码质量。
|
芯片 开发者
脉冲宽度调制
脉冲宽度调制(PWM)是一种通过调整脉冲信号的占空比来控制功率、亮度或速度等参数的技术,广泛应用于电机控制、电源转换和照明等领域。
1325 1
|
SQL 关系型数据库 MySQL
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
|
Cloud Native 开发工具 git
云原生之使用Docker部署Gitblit服务器
云原生之使用Docker部署Gitblit服务器
740 1

热门文章

最新文章