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. oracle中schema指的是什么?

    看来有的人还是对schema的真正含义不太理解,现在我再次整理了一下,希望对大家有所帮助. 我们先来看一下他们的定义:A schema is a collection of database obje ...

  2. jQuery对input select操作小结

    //遍历option和添加.移除optionfunction changeShipMethod(shipping){ var len = $("select[@name=ISHIPTYPE] ...

  3. 电源相关知识—S0、S1(POS)、S2、S3(STR)、 S4、S5、睡眠、休眠、待机

    转 http://blog.sina.com.cn/s/blog_52f28dde0100l3ci.html APM https://en.wikipedia.org/wiki/Advanced_Po ...

  4. JSON认识

    阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是Java ...

  5. MySQL高可用之MHA搭建

    测试环境 节点1 172.16.200.231 6666               master         节点2 172.16.200.27 6666 slave1              ...

  6. Java的内部类

    Java的内部类 首先我们来了解一下什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类可以是静态static的,也可用public,default,protected和private修饰 ...

  7. apply和call

    call和apply是定义在Function.prototype上的方法. 共同点:可以自由指定函数执行时内部this的指向 不同点:传参方式不同 call方法: 语法:call(thisObj,Ob ...

  8. Python学习路程day10

    Twsited异步网络框架 Twisted是一个事件驱动的网络框架,其中包含了诸多功能,例如:网络协议.线程.数据库管理.网络操作.电子邮件等. 事件驱动 简而言之,事件驱动分为二个部分:第一,注册事 ...

  9. OpenCV是什么?

    OpenCV其实就是一对C和C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法.例如C借口函数cvCanny()实现了Canny边缘提取算法.可以直接将这些源代码添加到我们自己的项 ...

  10. windows python3.2 shell环境(python叫做解释器)

    [进入python的shell 环境:](python里称作命令解释器,windows叫做cmd,unix叫做shell) cmd  输入set path=%path%;e:\python2.7然后输 ...