【另眼看编程】(二)什么是变量类型?为什么变量要分类型?

本文详细介绍了PHP中变量的基本数据类型、复合数据类型及特殊数据类型,并通过实例阐述了布尔型、整型、浮点型、字符串类型的特点及用途,同时探讨了复合数据类型数组、对象和资源的概念与应用,最后对NULL类型进行了简述,旨在帮助开发者全面掌握PHP变量管理技巧。
摘要由CSDN通过智能技术生成
说完变量,下一步要说的自然就是变量的类型。
前面有说到,内存相当于是一个存放数据的“仓库”,里面存放着很多很多要用到的数据,而变量就是这些数据存在内存中哪个位置的一个“标签”。
话说有一天,我想让我的“工厂(计算机程序)”制作一辆自行车,于是我吩咐我的美女助理“PHP萝莉”帮我去仓库里取一些零件(数据)来使用,而我的仓库管理太落后了,没有分门别类存放这些零件,结果“PHP萝莉”在帮我取“wheel(车轮)”的时候,就拿到了一个用于生产小轿车的车轮,结果当然是没办法制造出我想要的“自行车”咯。
所以说,对仓库(内存)里的零件(数据)进行分门别类,是非常有必要的。下面就详细说说PHP中的变量类型:

在PHP中,变量的大分类有三个:基本数据类型、复合数据类型、特殊数据类型。

基本数据类型,又可以叫简单数据类型,顾名思义,这个分类下存放的,是一些比较简单的、单一的数据。在这个大分类下有四种数据类型:1、布尔型(boolean),2、整型(integer),3、浮点型(float),4、字符串(string)。
1、布尔型
这种类型下所存放的,是用于表示真或假的数据,如果对于真或假觉得不理解,那也可以理解成“是”或者“否”,“对”或者“错”。布尔型的变量,常用在判断语句中,作为判断条件。布尔型的变量,只有两个值,分别是“true”和“false”,这两个值分别表示前面所说的“真、是、对”,“假、否、错”。
比如:1+1=2,这个条件的成立的,那么用布尔值来表示就是“true”,1+1=3,这个条件是错误的,那么用布尔值表示就是“false”。关于布尔型变量的具体作用和实例,请参考后续推出的“流程控制”的相关文章。

2、整型
也可以叫“整数”型。是用于存放整数的。比如说正整数(1,2,100,392,943)、负整数(-1,-3,-483,-3043)还有0。这个没什么好介绍的,就记得整型是用于存放整数的就ok了。

3、浮点型
也可以叫“小数型”,是用于存放小数的,比如(1.1,1.33,-1.3,-2.5395)以及0。值得一提的是,在某些浮点型的计算中,比如:2.1-1.1=1, 这个时候的结果1看起来是整数,它是浮点型的,因为浮点型运算出来的也是浮点型。
关于浮点型和整型:整型只能存整数,浮点型可以存小数、“看起来像整数的小数”。至于这些区别,初学者不用太深入了解也不用纠结这些细节,在以后的学习和开发中遇到了,就会慢慢明白的了。
总之只要记得: 整型用于放整数,浮点型用于放小数就可以了。

4、字符串
字符串字符串,顾名思义就是”字符“组成的”串“。什么是字符呀?就是我们平时看到的一个个的”字“,包括中文的汉字、标点符号、日文的假名、英文的字母、数学的数字、运算符号等等等等,只要是我们能看到的,都算是”字符“。除了能看到的,还有一些看不到的,比如”空格“、”换行“、”缩进(tab)“等等。
字符串变量,是专门用来存放这些文字和符号的。字符串变量也没什么好说的,知道它是存字符的就可以了,唯一要特别注意的,就是字符串和整型、浮点型的区别。
整型、浮点型存放的是整数、小数,总结的来说,它们存的是”数字“。
而字符串所存的是字符, 字符不是数字,也不等于数字。在PHP里,字符串是用引号引起来的一段文字或字符,比如”菲菲菲菲常美丽的巨兔12138“、”24K纯帅“,在这两个字符串里,”12138 “和”24“,都不是数字,它们是作为”字符“的身份出现的。比如”12580“,这个用引号引起来的,就不是一个”数字“,而是一段”字符“。
数字是可以进行数学运算的,比如说:10086+10010 = 20096。
而字符串呢,只能进行拼接,比如说“10086”.“10010” = “1008610010”,就是把两个字符串给拼接起来,组成一个新的字符串。
当然“10086”+“10010”也是等于“10096”的,因为在这个运算过程中,我们的PHP美女助理发现了这是两个字符串,前面说过,PHP美女助理她有时候很聪明,在这里她知道我们要进行“加法”运算,她会自动地帮我们把这两个 字符串转成 整型的10086和10010,然后再进行运算。关于PHP类型转换,后面将有专门的文章会提到。

复合数据类型,又可以叫做复杂数据类型,它与基本数据类型(又可叫简单数据类型)的区别是,简单数据类型只能存放单一的值,比如一个数字,一个字符串,一个布尔值等。而复杂数据类型呢,它可以存放一批数据的集合,比如可以同时存放一堆数字、字符、布尔值。比较浅显地说,基本数据类型和复杂数据类型都是一个柜子,里面可以存放数据。但是基本数据类型的柜子只有一个格子,只能放单一的一个数据,而复杂数据类型是有很多个格子的“大柜子”,每个格子里都可以存放一个数据,那么整个柜子就可以存放很多很多的数据。在这个分类下,有三种数据类型:1、数组(Array),2、对象(Object),3、资源(Resource)。

1、数组
数组,可以理解为数据的组合。它可以存放 多个任意类型的数据,在存储数据的时候,是通过“键(key)=>值(value)”的形式来保存数据的。说起“键”和“值”,也许很多新手都会蒙了,什么是 “键”,什么是“值”?说得浅显点,“键”就是数组这个‘大柜子“里面每一个“格子”的标签,”值“就是每一个“格子”里放的东西,举个例子可能更容易理解:
  1. $学生资料 = array(
  2. '成绩表' => 学生12年上学期的成绩表,
  3. '档案' => 学生入学时提交的档案资料
  4. )

在这个例子里,$学生资料是变量名,它的作用是告诉我们的美女助理PHP,你要去贴着“$学生资料”的“柜子”里找相应的数据,而这个柜子有两个“格子”,一个存放的是学生的成绩表,一个存放的是学生的档案,那么我们想要让PHP美女帮我们把学生的成绩表找出来时,就可以这样给她下达指令:
$学生资料['成绩表'],这句话的意思是:请帮我到“$学生资料”这个柜子,找到标签为“成绩表”的格子里面存放的东西,那么PHP美女就会听话地帮我们拿出这个“格子”里存放的东西,也就是“学生12年上学期的成绩表”。
$数组名[键]是在数组中取数据的规定格式。

在数组中,除了这种明确标明“键”的形式外,还有一种是没有明确标明“键“的,如:

$自行车部件 = array('车把','车轮','踏脚')
在这种方式下的数组,会自动为它里面的”格子“编上号码,编号从0开始,比如”车把“就是存放在”$自行车部件“这个柜子(数组)里面的编号(键)为”0“的”格子“里,取数据时的操作方式就是:
$自行车部件[0]
这样就可以把”车把“给取出来了。


2、对象
对象的英文叫Object,释义为:n. 目标;物体。在大陆,官方的翻译叫作“对象”,在港台地区的翻译叫做“物件”,其实把它叫做“物件”更加形象一点。对象和数组都是复杂数据类型,都可以存放 多个任意类型的数据。但是既然对象叫Object,那么它就和数组是有区别的,数组中是简单地把一些数据组织在一起。而对象呢,它是按人类世界中一切“物件”的模式来设计的,它除了可以存放各种数据,还可以存放各种行为(可以理解为动作),也就是函数。比如在现实的世界里,有小明这么一个人,小明除了有身高、体重、年龄这些简单的数据外,他还有吃饭、睡觉、看书、跑步等行为(动作)。在对象里,我们把一个对象包含的简单的数据叫做“属性”,而这个对象可以进行的动作或行为则叫做“方法”,举个例子:
  1. class 小明{
  2. 年龄;
  3. 身高;
  4. 体重;
  5. function 吃饭(){
  6. 进行吃饭的动作
  7. }
  8. function 睡觉(){
  9. 进行睡觉的动作
  10. }
  11. }


那么在这个对象里,就有了年龄、身高、体重这几个“属性”,也有了“吃饭”、“睡觉”这几个方法。
对象的调用,要先进行实例化,用new关键字进行这一个操作
$小明 = new 小明();
然后就可以调用$小明这个对象里的属性和方法了,调用方法如下:
$小明 -> 年龄;这样就可以调用小明的年龄属性
$小明 -> 吃饭();这样就可以调用小明吃饭这个方法。

对象是一个很复杂的数据类型,后面将有章节专门讲解,看不懂的同学不必纠结,大概先了解下概念即可,在学习的前期,暂时是用不到对象这个类型的数据的。

3、资源
最后我们来讲一讲资源。资源,就是我们在用某些函数访问外部文件、数据库、图像画面等等时所产生的一个引导性的数据,它的作用是告诉接下来的程序要使用的资源来自哪里,如何去访问。关于资源也没什么可说的,大家可以参考《细说PHP》(第一版)156页在关于资源的介绍。在以后的使用中,大家就会慢慢理解资源是什么的了。


最后我们再说说一种特殊的数据类型,就是NULL类型,NULL不区分大小写,null或NULL都可以。null类型用于表示一个变量“没有值”,没有值是什么概念呢,前面有提到过,变量其实是用于记录内存中数据存储位置的一个“标签”,NULL类型可以这样理解,就是这个标签是刚刚写好的,还没有“帖”到任何一个“仓库、柜子或格子”上的“标签”,它不等于0,也不等于空格,仅表示它是一个“没有被使用的标签”。

关于变量类型,我们就讨论到这里,接下来的一章,会为大家简单描述一下“值类型和引用类型”的区别。


------------
PS:同学们要是有什么疑问,可以跟帖提出,我会抽时间为大家解答,或者有哪位能回答的兄弟也可以帮忙解答,互相学习互相进步嘛。
下集预告:
PHP中数据类型的相互转换

原文地址:http://bbs.lampbrother.net/read-htm-tid-122390.html

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(61) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值