PHP的数据类型

php数据类型分为三大类,

标量类型:整型、浮点型、布尔型和字符串型

复合类型:数组型和对象(object)

特殊类型:空类型和资源型    !资源型以后会讲


整形(int)就是整数的数值。

有三种表现形式:十进制,八进制,十六进制。

浮点型(float)就是小数点

有两种表现形式:小数形式:3.14   -0.756

指数形式:就是科学技术法  4.5e6=4.5x106   -5.9E-2=-5.9x10-2

!!!最好不要使用浮点数进行比较!因为浮点数会造成数据精度的丢失!

布尔型:只有两个值,true、false    !不区分大小写

整型0:0

浮点0:0.0

字符串0:‘0’

空字符串:‘’,注意‘  ’(里面是空格)会当成true来处理

空类型:NULL

空数组:array()

上面这些都会得出false;    !资源型和对象型在进行条件判断的时候永远为真

字符串型:

PHP中有四种定义字符串的方式,大家比较熟悉的就是使用单引号和双引号来定义!

双引号和单引号的区别;

单引号:

  单引号不能解析其中的变量!

  如果字符串中又出现了单引号,需要对单引号进行转义!转义字符:\

双引号:双引号能解析其中的变量。

  如果字符串里面出现了变量,最好使用变量定界符对变量进行包裹!变量定界符:{$string}    !这里的{}只是一种语法形式,不属于字符串的一部分

NULL类型:

把一个变量直接赋值为NULL

使用一个没有定义或者被删除(unset)掉的一个变量

强制返回一个没有返回值的函数的时候

上面都是会出现NULL类型。

recourse资源型:

PHP如果要使用外部数据,就是采用资源的方式来进行管理!


php是弱类型语言,随时都在发生类型的转换,类型转换可以分两种一个是自动转换另一个是强制转换

!!自由转换和强制转换都不会改变原来的数据类型。

自动转换:字符串类型自动转换为数值类型    !如果字符串不是以数值部分开头,在参与运算的时候当成0来处理

     其他类型自动转换为布尔型

    整型0:0

    浮点0:0.0

    字符串0:’0’

    空字符串:’’

    空类型:NULL

    空数组:array()

  上面的都会得出false

强制转换:

  语法:(目标类型)原始数据

  (int)转换为整数类型  (float)转换为浮点数类型  (string)转换为字符串类型  (array)转换为数组类型  (bool)或(boolean)转换为布尔类型

  (object)转换为对象类型

!!无法将一个数据强制转换为null型和资源型;对于(array)是将后面的数据项强制转换为该数组的第一个元素;

!!但是,这种并不是增加数组元素的一种语法,因为先将原数组清空,再把后面的数据转换为当前数组的第一个元素;

!!对于(object),其实就是将后面的数据转换为该对象的一个属性。


函数的原型

  函数返回值类型 函数名(参数1类型 参数1,参数2类型 参数2……)

!!任何一个函数,都要考虑它是否有返回值以及该返回值的类型,如果该函数没有返回值,就用void来表示!

!!如果函数参数的类型或者函数返回值的类型有很多个,就用mixed来代替,意思就是混合类型,也叫作“伪类型”

gettype:

  语法:stringtype(mixed $var)

  返回一个数据项(变量或常量或表达式)的类型!由于php一共有8种类型,一般认为它的返回值有8种!

settype

  语法:bool settype(mixed&$var,string $type)

  设置一个数据项(变量或常量或表达式)的类型!

  需要两个参数:第一个需要转换的数据项;第二个是需要转成什么样的类型

  如果转换成功,就返回true,如果转换失败,就返回false!

  !!这里的转换是真的把原数据的值和类型都转换了

isset

  语法:bool isset(mixed&$var,[mixed $…])

  判断一个变量是否存在!

  存在就返回true,不存在就返回false!

另外,isset还可以用来判断一个数组的某个元素是否存在!以及对象的属性是否存在!

empty

  语法:bool empty(mixed $var)

  判断一个变量是否为空,如果为空就返回true,如果不为空就返回false!

  和isset的判断类型相反,可以理解为isset得出的false就是empty的true。

is_type系列:

  该系列函数的作用是判断一个变量是否为函数所指定的类型,返回一个布尔值!这里都是严格判断,在判断的时候不会进行类型的自动转换!

is_int或is_integer

is_float或is_double    double是双精度

is_numeric    判断是否是一个数值类型等于is_int + in_float!如果一个字符串是一个数字字符串(里面全部为数字),也当成是一个数值型数据来处理!

is_bool

is_string

is_scalar    scalar是标量的意思,等于is_int+is_bool+is_float+is_string

is_array

is_NULL

is_object

is_resource

PHP入门part2的更多相关文章

  1. Zato入门part2

    Zato入门part1 参考1 前提:从part已经建立了集群.服务框架并成功的调用了服务.现在我们通过HTTP.ZeroMQ和JSON使用外部服务. 除非坚持手工调用,否则服务从来不知道什么确切的U ...

  2. ReactiveCocoa入门-part2

    ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术.在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号.你还学到了如何转换 ...

  3. maven入门--part2 安装

    Maven安装和配置 (1)下载安装文件apache-maven-3.03-bin.tar (2)解压至安装目录,安装完毕 (3)修改.bash_profile,修改maven安装路径,修改构建GC配 ...

  4. 知识图谱与机器学习|KG入门 -- Part2 建立知识图谱

    介绍 在本系列前面两篇文章中我一直在讨论Data Fabric,并给出了一些关于Data Fabric中的机器学习和深度学习的概念.并给出了我对Data Fabric的定义: Data Fabric是 ...

  5. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  6. Spring boot 1.3.5 RELEASE 官方文档中文翻译--Part2:新手入门

    Part II. 新手入门 如果你刚刚开始学习Spring boot或"普通"的Spring,这部分非常适合你!在这里,我们回答了最基础的"什么是?".&quo ...

  7. 【PyTorch深度学习60分钟快速入门 】Part2:Autograd自动化微分

      在PyTorch中,集中于所有神经网络的是autograd包.首先,我们简要地看一下此工具包,然后我们将训练第一个神经网络. autograd包为张量的所有操作提供了自动微分.它是一个运行式定义的 ...

  8. django入门-模型-part2

    尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6511177.html 完全翻译自官方文档 https://docs.djangoproje ...

  9. C语言编程入门之--第五章C语言基本运算和表达式-part2

    5.1.4 再来一个C库函数getchar吸收回车键 回车键也是一个字符,在使用scanf的时候,输入完毕要按下回车键,这时候回车键也会被输入到stdin流中,会搞乱我们的程序. 注意:stdin是输 ...

随机推荐

  1. Shell脚本的追踪与debug

    [xd502djj@linux ~]#sh [-nvx] scripts.sh 参数: -n:不执行脚本,仅仅查询语法错误 -v:执行脚本前,先将脚本scripts的内容输出到屏幕上 -x:将使用到的 ...

  2. PostgreSQL的时间/日期函数使用 转

    http://www.cnblogs.com/mchina/archive/2013/04/15/3010418.html

  3. HTML“计算机输出”标签 <code><kbd><samp><tt><var><pre>

    我们并不反对使用它们,但是如果您只是为了达到某种视觉效果而使用这些标签的话,我们建议您使用样式表,那么做会达到更加丰富的效果. <code> 标签-定义计算机代码文本. 定义和用法: &l ...

  4. iOS开发UI篇—无限轮播(新闻数据展示)

    iOS开发UI篇—无限轮播(新闻数据展示) 一.实现效果        二.实现步骤 1.前期准备 (1)导入数据转模型的第三方框架MJExtension (2)向项目中添加保存有“新闻”数据的pli ...

  5. curl请求的时候总是提示400

    今天用curl测试一个接口,一直提示400 最后发现是url的问题,如下处理就可以了 $url = str_replace(' ', '+', $url);

  6. [转]Web3.0时代,企业知识管理新趋势

    [转自http://www.amt.com.cn/html/ManageFront/AMTPoint0/2014/0716/1370.html] Web3.0时代,企业知识管理新趋势 2014-07- ...

  7. 国际性公司的中国化BPM业务流程管理怎么落地?

    康奈可集团于1938年在日本成立,总部位于东京,日本康奈可自2002年开始投资中国,现已在江苏无锡.湖北襄樊和广州地区投资设立8家公司,总投资超过1亿美元.公司主要生产汽车模块及散热器.车用空调.消音 ...

  8. HDU5000 (DP + 规律)

    题意:举例子好说点,告诉你4个数字,8,6,4,2四个数字,组成一个四位数,如果两个数字分别是1111,2222,则2222会吧1111杀掉,就是组成的四位数不能每一位都小于或等于一个数,然后让你求出 ...

  9. Asp.Net异步导入Excel

    故事:用户在页面上传一个excel文件,程序把excel里的内容入库. 技术方案:保存文件在服务器,jquey Ajax 异步读取文件中的记录到数据库,在页面实时刷新导入情况 页面前端 <%@ ...

  10. html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

    * HTML5 现在已经不是 SGML(标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言) 的子集,主要是关于图像,位置,存储,多任务等功能的增加.   * 拖拽释放(Drag an ...