美文网首页
1. 数据类型

1. 数据类型

作者: 57fc17b7d598 | 来源:发表于2017-06-20 13:20 被阅读5次

基本概念

在PHP中定义变量是不支持指定类型的,而是在其赋值后根据内容自动处理。
比如一个变量,给其赋值一个字符串,那么这个变量就是字符串类型的,随后又将其值改成一个整数型,那么这个变量也会自动变成整数型的变量。

在计算中,如果有一个变量是float类型,那么整个计算结果也将会是float类型。

原始类型

PHP中一共有 9种 原始数据类型

  • 标量类型

    • boolean(布尔值)
    • integer(整数型)
    • float(浮点型,也叫double)
    • string(字符串)
  • 复合类型

    • array(数组)
    • object(对象)
    • callable(可调用类型,如同callback回调函数)
  • 特殊类型

    • resource(资源)
    • null(无类型)

文档类型

还有一些常用于文档上的伪类型,它们并不是PHP的原生类型,只是用于文档上方便人们理解而产生的类型,所以不能在PHP里使用

  • mixed(说明参数可以是多种类型的数据)

  • number(说明参数是一个 integerfloat

  • callback(说明参数是一个回调函数)

  • array|object(说明参数可以是 arrayobject

  • void(作为返回值时表示返回值时无用的,作为参数时表示不接受任何参数)

  • ...(说明函数可以接受任意数量的参数)

判断类型

如果要 调试一个变量的类型 可以使用gettype()函数,该函数将返回类型的字符串形式。

// integer
gettype(123);
// string
gettype('123');
// boolean
gettype(true);
// double
gettype(12.45);

// string
gettype(gettype(123));

如果要 判断一个变量的类型 可以用is_type()函数,不要用gettype()

// 布尔型
is_bool(TRUE);
// 浮点数
is_float(3.14);
// 整数型
is_int(123);
// 字符串
is_string('123');

// 数组
is_array([]);
// 对象
is_object(new stdClass());
// 可调用结构
is_callable('Example::staticFunction');
// 资源
is_resource();
// NULL
is_null();

如果想查看一个变量的类型和值可以使用var_dump()print_r()等函数

类型转换

如果要将一个 变量强行当做另一种类型 来进行计算的话,可以使用强制类型转换(就是在变量前面加上(type)这种)。

// 我是整数型
$foo = 123;
// 我是字符串类型
$bar = (string)$foo;

允许强制转换的类型有:

  • (int)(integer) 可以转成整数型
  • (bool)(boolean) 可以转成布尔型
  • (float)(double)(real) 可以转成浮点型
  • (string) 可以转成字符串
  • (array) 可以转成数组
  • (object) 可以转成对象
  • (unset) 可以转成NULL
  • (binary)b 前缀 可以转成二进制

如果要将一个 变量彻底改变成另一种类型,可以使用settype()函数

下面是一个类型转换的简单例子

// 整数型变量
$temp = 123;
// Integer
echo gettype($temp) . '<br />';
// String
echo gettype((string)$temp) . '<br />';
// Integer
echo gettype($temp) . '<br />';
// 返回true
settype($temp, 'string');
// String
echo gettype($temp) . '<br />';
// string(3) "123"
var_dump($temp);

类型比较

字符串字符串 比较,判断两个字符串的Ascii值大小

参考例子

官方参考表:http://php.net/manual/zh/types.comparisons.php

例子1

// 输出1
(string)TRUE;

// 输出空字符串
(string)FALSE;

例子2

$a = TRUE;
// 输出11
echo $a++ . $a;
// 原因是 增量运算符++ 并不会将 布尔型的$a 转成整数型来进行运算
// 所以 $a++ 一直都等于 TRUE,也就是数字 1

例子3

$string = '123.456';

// 因为是 =+ 而不是 +=,所以不报错,且$float未赋值,等于null
// 任何表达式中和`float`进行计算都等于`float`
$float =+ $string;

// 位移运算,自动转成整数型
$integer = 0|$string;

// 逻辑运算,自动转成布尔型
$boolean = !!$string;

相关文章

  • 1. 数据类型

    修饰符 数据类型 字符串(String) 哈希表(Object) 数组(Array) 数字(Number) 布尔(...

  • 1. 数据类型

    基本概念 在PHP中定义变量是不支持指定类型的,而是在其赋值后根据内容自动处理。比如一个变量,给其赋值一个字符串,...

  • 1.数据类型

    undefined、null null是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无...

  • Java数据类型(慢慢积累,对于事物的理解也会不一样)

    Java的数据类型: 1. 内置数据类型(基本数据类型); 2. 引用数据类型; Java基本数据类型:(...

  • 【IOS 开发】 数据类型详解

    1. 数据类型简介及输出 (1) 数据类型简介 数据类型简介: Object - C 数据类型 分为 基本数据类型...

  • iOS 数据类型简介及输出

    一、数据类型简介及输出 1.数据类型简介 数据类型简介 : Object - C 数据类型 分为 基本数据类型, ...

  • ts -- 1.数据类型

    布尔类型 数组类型(三种表达方式) 字符串类型 数字类型 元组类型(定义数组类型的方式,泛指一个类型) 枚举类型(...

  • 1. java数据类型

    Java数据类型主要包括两种:基本类型 和 封装类型 1. 基本类型 1.1 分类Java的基本数据类型总共有8种...

  • JAVA 核心笔记 || [2] 数据类型

    JAVA数据类型分为两大数据类型: 1.内置数据类型2.引用数据类型 内置数据类型 引用数据类型 上篇 : 开篇 ...

  • javaSE - 001 - 基本数据类型

    java中的数据类型分为两大类 1.基本数据类型2.引用数据类型 基本数据类型(四类八种) 1.整形(byte ,...

网友评论

      本文标题:1. 数据类型

      本文链接:https://www.haomeiwen.com/subject/xvkilttx.html