实例解析php的数据类型

PHP的数据类型分为三大类,八小类:

1、标量类型

boolean(布尔型):这是最简单的类型,只有两个取值,可以为TRUE/true或FALSE/false,不区分大小写。详细请查看:PHP布尔类型(boolean)

integer(整型):整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号( - 或 + )。八进制表示数字前必须加上0(零),十六进制表示数字前必须加上0x。详细请查看:PHP整型数据(integer)

float(浮点型,也称作double):详细请查看:PHP浮点类型(float)

string(字符串):字符型变量不同于其他编程语言有字符和字符串之分,在PHP中,统一使用字符型变量来定义字符或者字符串。详细请查看:PHP字符串类型(string)

2、复合类型

array(数组):数组型变量是一种比较特殊的变量类型

object(对象):对象也是一种特殊的数据类型,要创建object变量,一般使用new关键字来获取,详细请查看:PHP对象类型(object)

3、特殊类型

resource(资源型):资源是一种特殊的变量,保存了到外部资源的的一个引用。资源是通过专门的函数来建立和使用的。详细请查看:PHP资源类型(resource)

NULL(空null):表示一个变量没有值。NULl唯一可能的值就是NULL

注意:PHP是一种弱类型的语言,其变量没有数据类型,但是变量所存储的数据有对应的数据类型

整型数据类型:采用8个字节存储,并且提供了多种进制的整数存储方式

$num = 10;      // 十进制
  $num1 = 0123;    // 八进制(83)
  $num2 = 0x123;   // 十六进制(291)
  $num3 = 0b1101;   //二进制(13)

浮点型数据类型:采用8个字节存储,并且提供了多种存储方式

$float_num = 1.23;
  $float_num1 = 1.23e3;    // 1.23乘10的3次方

其在内存中的存储方式是:将8个字节的一部分拿出来存储指数,一部分存储有效数字,则某些时候,当超出一定范围,会导致精度丢失。

字符串数据类型

在PHP中,凡是用户输入的数据和程序员使用了引号(单引号和双引号)定义的数据,系统都理解为字符串,PHP7字符串的长度理论上无限制

单引号和双引号都可以定义字符串,但是彼此是有区别的:

--单引号中只能解析少量的转义符号:\',\

--双引号中能解析较多的转义字符:$,\”,\n

双引号中能够解析嵌套在字符串中的php变量( 变量要与其他字符串分离,使用{} )

$a = "你好";
  $c = "$a世界";
  // $c = "{$a}世界" 常用
  echo $c;    //输出“你好世界”

字符串查看

可以通过下标$str[ 1 ]来查看字符串中制定下标的字符,当索引为负数时,则从后往前作为索引方向

定义数组

在PHP中可以通过多种方式来定义数组,通用的几种方式如下:

-- 使用array关键字来初始化数组

-- 使用数组括号 [ ] 来初始化数组

// 使用array
  $arr1 = array();    // 可以不指定元素
  $arr2 = array("name", "age");
// 使用[]定义数组
  $arr3 = [];
  $arr4 = ["name", "age"];

数组的特点

1、PHP数组中的元素理论上没有数量限制

2、PHP数组中可以动态添加元素

3、PHP数组元素的值可以是任意数据类型

4、PHP数组下标可以是纯数字(索引数组),纯字符串(关联数组),混合数字和字符串(混合数组)

类型判断

通过系统函数判定数据类型:函数的格式使用 is_ 开头,后面跟对应的数据类型,其返回结果是布尔类型。

类型转换

自动转换:PHP会自动根据数据要参与的运算场景来将不符合条件的数据类型的数据转换目标类型数据,这种转换不会改变变量原来的数据类型

强制转换:使用 int(目标类型)格式来转换数据

(0)

相关推荐

  • 分享下php5类中三种数据类型的区别

    public: 公有类型 在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中可以能过$obj->var 来调用 public类型的方法或属性 protected: 受保护类型 在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中不能通过$obj->var 来调用 protected类型的方法或属性 private

  • PHP学习笔记(三):数据类型转换与常量介绍

    一.PHP数据类型相互转换 1.强制转换 复制代码 代码如下: // bool,int,float,string,array,object,null bool settype ( mixed $var , string $type ) 1)会改变原变量的类型 复制代码 代码如下: $a= "123a"; // string settype($a, "int"); // 勿遗漏双引号 var_dump($a); 2)在赋值前定义,不改变原变量类型 复制代码 代码如下:

  • 浅析php数据类型转换

    PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个整数. PHP 的自动类型转换的一个例子是加号"+".如果任何一个操作数是浮点数,则所有的操作数都被当成浮点数,结果也是浮点数.否则操作数会被解释为整数,结果也是整数.注意这并没有改变这些操作数本身的类型:改变的仅是这些操作数如何被求值以及表达式本身的类型. 类型强制转换允许

  • 浅谈php中变量的数据类型判断函数

    在php中我们可以通过 var_dump()打印出变量的类型和值.同时我们可以通过一些函数判断变量的类型.如果只是想得到一个变量的数据类型,可以使用gettype()函数,gettype($t) 返回$t的数据类型的字符串,要是$t不属于php中8种基本变量类型,返回"unknow type".我们还可以通过is_type系类函数直接判断是否为type类型函数,是的话返回true ,不是返回false. 如: is_bool()        是否为布尔型 is_int()      

  • 有关于PHP中常见数据类型的汇总分享

    PHP 数据类型 PHP 支持八种原始类型(type). 四种标量类型: string(字符串) integer(整型) float(浮点型,也作 double ) boolean(布尔型) 两种复合类型: array(数组) object(对象) 两种特殊类型: resource(资源) NULL(空) 查看变量类型 通过 gettype() 函数可以方便的查看某个变量的类型: 复制代码 代码如下: <?php$var_bool = TRUE; // a boolean$var_str = &qu

  • PHP检测数据类型的几种方法(总结)

    在JavaScript中,使用typeof可以检测基本数据类型,使用instanceof可以检测引用数据类型.在PHP中,也有检测数据类型的方法,具体如下: 1.输出变量的数据类型(gettype) <?php $arry = array('a','b','c'); echo gettype($arry);//array ?> 2.输出变量的数据类型.包含的数量以及具体内容(var_dump) 查看源码打印代码帮助 <?php $str = 'hello world'; var_dump

  • PHP中数据类型转换的三种方式

    PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形 2.(float).(double).(real):转换成浮点型 3.(string):转换成字符串 4.(bool).(boolean):转换成布尔类型 5.(array):转换成数组 6.(object):转换成对象 PHP数据类型有三种转换方式: 1.在要转换的变量之前加上用括号括起来的目标类型 2.使用3个具体类型的转换函数,intval().floatval().strval

  • 实例解析php的数据类型

    PHP的数据类型分为三大类,八小类: 1.标量类型 boolean(布尔型):这是最简单的类型,只有两个取值,可以为TRUE/true或FALSE/false,不区分大小写.详细请查看:PHP布尔类型(boolean) integer(整型):整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号( - 或 + ).八进制表示数字前必须加上0(零),十六进制表示数字前必须加上0x.详细请查看:PHP整型数据(integer) float(浮点型,也称作double):详细请查看:PH

  • python数据类型判断type与isinstance的区别实例解析

    在项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端"参数错误"错误码. 这样做不但便于调试,而且增加健壮性.因为客户端是可以作弊的,不要轻易相信客户端传过来的参数. 验证类型用type函数,非常好用,比如 >>type('foo') == str True >>type(2.3) in (int,float) True 既然有了type()来判断类型,为什么还有isinstance()呢? 一个明显的区别是在判断子类. type(

  • JS数据类型STRING使用实例解析

    这篇文章主要介绍了JS数据类型STRING使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 转换为字符串 var num = 10 num.toString(); //"10" 转换为字符串-参数表示几进制的字符串 var stringValue = "hello world"; stringValue.length; //"11" 读取长度 读取字符串指定位置的字符 //下面两行可以

  • 实例解析Json反序列化之ObjectMapper(自定义实现反序列化方法)

    对于服务器端开发人员而言,调用第三方接口获取数据,将其"代理"转化并返给客户端几乎是家常便饭的事儿.    一般情况下,第三方接口返回的数据类型是json格式,而服务器开发人员则需将json格式的数据转换成对象,继而对其进行处理并封装,以返回给客户端. 在不是特别考虑效率的情况下(对于搜索.缓存等情形可以考虑使用thrift和protobuffer),通常我们会选取jackson包中的ObjectMapper类对json串反序列化以得到相应对象.通常会选取readValue(Strin

  • C++函数模板与类模板实例解析

    本文针对C++函数模板与类模板进行了较为详尽的实例解析,有助于帮助读者加深对C++函数模板与类模板的理解.具体内容如下: 泛型编程(Generic Programming)是一种编程范式,通过将类型参数化来实现在同一份代码上操作多种数据类型,泛型是一般化并可重复使用的意思.泛型编程最初诞生于C++中,目的是为了实现C++的STL(标准模板库). 模板(template)是泛型编程的基础,一个模板就是一个创建类或函数的蓝图或公式.例如,当使用一个vector这样的泛型类型或者find这样的泛型函数

  • Python建立Map写Excel表实例解析

    本文主要研究的是用Python语言建立Map写Excel表的相关代码,具体如下. 前言:我们已经能够很熟练的写Excel表相关的脚本了.大致的操作就是,从数据库中取数据,建立Excel模板,然后根据模板建立一个新的Excel表,把数据库中的数据写入.最后发送邮件.之前的一篇记录博客,写的很标准了.这里我们说点遇到的新问题. 我们之前写类似脚本的时候,有个问题没有考虑过,为什么要建立模板然后再写入数据呢?诶-其实也不算是没考虑过,只是懒没有深究罢了.只求快点完成任务... 这里对这个问题进行思考阐

  • Java String创建对象实例解析

    本文研究的主要是Java String创建对象的问题,具体介绍如下. 首先我们要明白两个概念,引用变量和对象,对象一般通过new在堆中创建,String只是一个引用变量. 所有的字符串都是String对象,由于字符串常量的大量使用,java中为了节省时间,在编译阶段,会把所有字符串常量放在字符串常量池中,字符串常量池的一个好处就是可以把相同的字符串合并,占用一个空间. 虽然在Java中无法直接获取变量的地址,但是可以用==判断一下两个引用变量是否指向了一个地址即一个对象. 栈内存 堆内存 基础类

  • Java内省实例解析

    图像中轮廓的个数,里面vector的size代表了轮廓上点的个数.了解JavaBean 内省对应的英文单词为IntroSpector,它主要用于对JavaBean进行操作,JavaBean是一种特殊的Java类,其中的某些方法符合某种命名规则,如果一个Java类中的一些方法符合某种命名规则,则可以把它当作JavaBean来使用. JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则. 如果要在两个模块之间传递多个信息

  • pyqt5自定义信号实例解析

    本文研究的主要是pyqt5自定义信号实例解析的相关内容,具体介绍如下. PyQt5已经自动定义了很多QT内建的信号.但是在实际的使用中为了灵活使用信号与槽机制,我们可以根据需要自定义signal.可以使用pyqtSignal()方法定义新的信号,新的信号作为类的属性. 自定义signal说明: pyqtSignal()方法原型(PyQt官网的定义): PyQt5.QtCore.pyqtSignal(types[, name[, revision=0[, arguments=[]]]]) Crea

  • Hibernate单表操作实例解析

    单一主键 assigned:由Java应用程序负责生成(即手工的赋值) native:由底层的数据库自动的生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是sequence,等等 操作的时候还是需要结合hibernate.cfg.xml文件的,因为数据库中的hbm2ddl.auto属性如果是update的时候,设置为主键自增是可以的:但是如果是create的时候,第二次如果不手工的改变,恐怕就要出BUG了. 基本类型 一般来说,按照Java的数据类型进行操作就可

随机推荐