详解PHP中的八种数据类型

美元符号$是变量的标识符,所有变量都是以$符号开头的,无论是声明变量还是调用变量,都应使用$符号。

PHP一共支持8种原始类型:

1、boolean (布尔型):取值只有 true 或 false;true和false是PHP的内部关键字。

通常布尔型变量都是应用在条件或循环语句的表达式中。在PHP中,不是只有false值才为假,在一些特殊情况下boolean值也被认为是false。这些特殊情况为:0、0.0、"0"、空白字符串("")、只声明没有复制的数组等。

2、integer (整型):

整型数据类型只能包含整数。可以用十进制、八进制、十六进制来表示。八进制的数字前必须加0,十六进制需要加0x。

注意1:如果在八进制中出现了非法数字(8和9),则后面的数字会被忽略掉。

注意2:如果给定的数值超出了int型所能表示的最大范围(-2147483648~+2147483647),将会被当作float型处理,这种情况称为整数溢出。同样,如果表达式的最后运算结果超出了int型的范围,也会返回float型。

3、float / double (浮点型):

浮点数据类型可以用来存储数字,也可以保存小数。它提供的精度比整数大得多。在32位的操作系统中,有效的范围是

1.7E-308~1.7E+308。在PHP4.0以前的版本中,浮点型的标识为double,也可以叫做双精度浮点数,两者没有区别。

浮点型数据默认有两种书写格式,

一种是标准格式:3.1415             -35.8

一种是科学记数法格式:3.58E1          849.72E-3

浮点型的数值只是一个近似值,所以要尽量便面浮点数型数值之间比较大小,因为最后的结果往往是部准确的。

4、string (字符串):

字符串是连续的字符序列,由数字、字母和符号组成。字符串中的每个字符只占用一个字节。在PHP中,有3种定义字符串的方式,分别是单引号(‘)、双引号(")和界定符(<<<)。

单引号和双引号的不同之处在于,双引号中所包含的变量会自动被替换成实际数值,而单引号中包含的变量则按普通字符串输出。

单引号和双引号的另一处不同点:对转义字符的使用。使用单引号时,只要对单引号“‘”进行转义即可。但使用双引号(")时,还要注意“"”、“$”等字符的使用。这些特殊字符都要通过转义符“\”来显示。

在定义简单的字符串时,使用单引号是一个更加合适的处理方式。如果使用双引号,PHP将花费一些时间来处理字符串的转义和变量的解析。

转义字符:

\n          换行

\r           回车

\t           水平制表符

\\           反斜杠

\$          美元符号

\‘           单引号

\"          双引号

\[0-7]{1,3}               此正则表达式序列匹配一个用八进制符号表示的字符,如\467

\x[0-9A-Fa-f]{1,2}    此正则表达式序列匹配一个用十六进制符号表示的字符,如\x9f

界定符(<<<):在使用时后接一个标识符,然后是字符串,最后是同样的标识符结束字符串。例如:

<?php

$str=‘界定符示例‘;         //声明变量$str

echo <<str                    //界定符开始

界定符和双引号没有什么区别,\$str同样可以被输出来。<p>            //输出字符串

\$str的内容为:$str                            //输出变量$str

str;                                                     //界定符结束

?>

结束标识符必须单独另起一行,并且不允许有空格。在标识符前后有其他符号或字符,也会发生错误。上面例子中的注释部分在实用中一定不要输入,否则会出现错误提示。

5、array (数组):

数组是一组数据的集合,它把一系列数据组织起来,形成一个可操作的整体。数组中可以包括很多数据,如标量数据、数组、对象、资源以及PHP中支持的其他语法结构等。

数组中的每个数据成为一个元素,元素包括索引(键名)和值两个部分。元素的索引可以由数字或字符串组成,元素的值可以是多钟数据类型。定义数组的语法格式:

$array=array(‘value1‘,‘value2‘,......);

$array[key]=‘value‘;

$array=array(key1=>value1,key2=>value2,......);

其中,参数key是数组元素的下标,value是数组下标所对应的元素。示例如下:

<?php
$arr1=array(‘This‘,‘is‘,‘an‘,‘example‘);
$arr2[0]=‘tempname‘;
$arr3=array(1=>‘You‘,2=>‘are‘,‘the‘=>‘the‘,‘str‘=>‘best‘);
echo $arr1[0].‘<br>‘;
echo $arr2[0].‘<br>‘;
echo $arr3[‘the‘].‘<br>‘;
?>

声明数组后,数组中的元素个数还可以自由更改。只要给数组赋值,数组就会自动增加长度。

6、object (对象):编程语言所应用到的方法有两种:面向过程和面向对象。

7、resource (资源):在使用资源时,系统会自动启用垃圾回收机制,释放不再使用的资源,避免内存消耗殆尽。

8、null (空值):

空值,表示没有为该变量设置任何值,空值(null)不区分大小写。

被赋予空值的情况有以下3种:

a、还没有赋任何值

b、被赋值null

c、被unset()函数处理过的变量

实例:

$string1=null;
$string3=‘str‘;
if(is_null($string1)){
   echo ‘string1 is null<br>‘;
}
if(is_null($string2)){
   echo ‘string2 is null<br>‘;
}
unset($string3);
if(is_null($string3)){
   echo ‘string3 is null<br>‘;
}

运行结果:

string1 is null

http://www.onesheng.cn Notice: Undefined variable: string2 in E:\PHPnow\htdocs\test2.php on line 36
string2 is null

http://www.onesheng.cn Notice: Undefined variable: string3 in E:\PHPnow\htdocs\test2.php on line 40
string3 is null

说明:is_null()函数是判断变量是否为null,该函数返回一个boolean型,如果变量为null,则返回true,否则返回false。unset()函数用来销毁指定的变量。从PHP4开始,unset()函数就不再有返回值,所以不要试图获取或输出unset()。

上面的错误是没有定义$string2,  unset($string3)没有返回值,等同于后面没有定义$string3。

检测数据类型:

is_bool                      检查变量是否是布尔类型       is_bool(true)、isbool(false)

is_string                    检查变量是否是字符串类型    is_string(‘string‘)、is_string(1234)

is_float / is_double    检查变量是否为浮点类型       is_float(3.1415)、is_float(‘3.1415‘)

is_integer / is_int       检查变量是否为整数              is_integer(34)、is_integer(‘34‘)

is_null                        检查变量是否为null               is_null(null)

is_array                      检查变量是否为数组类型      is_array($arr)

is_object                     检查变量是否为一个对象类型 is_object($obj)

is_numeric                  检查变量是否为数字或由数字组成的字符串      is_numeric(‘5‘)、is_numeric(‘abcd123‘)

时间: 2024-10-03 14:46:18

详解PHP中的八种数据类型的相关文章

详解CSS中的几种长度px、em、pt

说说css的几种距离吧,大致有px.em.pt.pc.in.mm.cm.ex八种,其中最常见到的是px,我还见到过的有ex和mm.cm,当然后两个在当年见的更多. 其实px,我们最熟悉,而在电脑上也应用最多,因为显示器的分辨率就是...px*....px,我们知道分辨率的话是不是对于浏览器最大时对界面的实际更方便简洁,应该有这么个原因吧. 而em则是相对长度单位,是相对于系统的默认字体尺寸来的: 至于我们最常见的mm和cm就是我们纯正意义上的cm和mm了,他们都是绝对长度单位,带了"绝对&quo

详解 UWP 中的两种 HttpClient API

摘要: 本文为个人博客备份文章,原文地址:http://validvoid.net/demystifying-httpclient-apis-in-the-uwp/ 本文编译自微软 Building Apps for Windows 博客,原文地址:Demystifying HttpClient APIs in the Universal Windows Platform.本文原文由 Windows 网络 API 组的 Program Manager Sidharth Nabar 撰写. UWP

详解 Java 中的三种代理模式

代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.      这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.      举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎

详解 Java 中的三种代理模式!

作者:岑宇 https://www.cnblogs.com/cenyu/p/6289209.html 代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法. 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的

Java中的八种数据类型

数据类型: 1.基本数据类型 数值型:整数类型:byte,short,int,long;浮点类型:float,double 字符型:char 布尔型:boolean 2.引用数据类型 类:class 接口:interface 数组

【转】详解C#中的反射

原帖链接点这里:详解C#中的反射 反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了(我不是医生也不是声学专家,不知说得是否准确^_^). 2.地球内部结构:地球的内部结构大体可以分为三层:地壳.地

详解Android中那些酷炫返回方式的实现

Android手机都会有返回键,不管是实体键,还是虚拟键.Android用户主要也都是通过这个返回键操控页面返回方式的,不比IOS逼格甚高的只保留一个操作键.这种方式是最普遍的返回方式,还有一种也是比较常见的,那就是页面内部自己响应.绝大多数APP每个页面的设计图顶部左侧都会有一个返回键图标,偶尔也有奇葩的设计放在底部左侧,点击这个图标即finish掉当前页面.简单的介绍完了最常见的两种方式,下面为大家介绍两种更友好的交互方式. 拿大家比较常用的三款社交软件的交互来说.腾讯微博的返回方式除去上述

(转)详解LVS负载均衡之三种工作模型原理和10种调度算法

前言:最近在为我们的产品在做高可用,一边搭环境,一边了解相关知识,搜到这篇博客,质量不错,表述清晰,于是转载过来学习. 标签:详解LVS负载均衡之三种工作模型原理和10种调度算法 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LVS负载均衡原理和算法详解    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大

实例详解 EJB 中的六大事务传播属性--转

前言 事务 (Transaction) 是访问并可能更新数据库中各种数据项的一个程序执行单元 (unit).在关系数据库中,一个事务可以是一条或一组 SQL 语句,甚至整个程序.它有通常被称为 ACID 的原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持续性(Durability)四大特性: 原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(Consistency):事务必须是使数据库