1. 数据类型

基本概念

在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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 1、数据类型 a.概念:什么是数据类型? 简单点儿来说,数据类型就是计算机对现实中数据的一种抽象和表示,比如现实中...
    2625K阅读 533评论 2 2
  • 01 你失恋过吗?失恋是一种什么样的感觉?传说中的失恋是痛不欲生,嚎嚎大哭,感觉被全世界遗弃。 02 传说中失恋的...
    孤单落叶阅读 588评论 1 3
  • 自古真情常离别,牛郎鹊桥苦千年。 人生苦短争朝夕,一份绵情勿迟延。
    徐一村阅读 155评论 0 4
  • 这几天在看笑来老师的《和时间做朋友》,想着“只字不差”的阅读,所以看得特别慢,以至于三四天了才看了二三十面。索性今...
    柴菲阅读 304评论 0 0
  • 话说配音大护法里小姜的小哥哥是谁啊,声音好苏啊啊啊啊啊啊啊啊啊!!!!!
    身骑白马失落沙洲阅读 100评论 0 0