PHP中的变量

 2023-09-05 阅读 55 评论 0

摘要:有同学问我,PHP中的变量到底是个啥?这里我讲一下我的理解 内存相当于是一个存放数据的“仓库”,里面存放着很多很多要用到的数据,而变量就是这些数据存在内存中哪个位置的一个“标签”。 话说有一天,我想让我的“工厂(计算机程序&

 

有同学问我,PHP中的变量到底是个啥?这里我讲一下我的理解

内存相当于是一个存放数据的“仓库”,里面存放着很多很多要用到的数据,而变量就是这些数据存在内存中哪个位置的一个“标签”。
 话说有一天,我想让我的“工厂(计算机程序)”制作一辆自行车,于是我吩咐我的美女助理“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)”的形式来保存数据的。说起“键”和“值”,也许很多新手都会蒙了,什么是 “键”,什么是“值”?说得浅显点,“键”就是数组这个‘大柜子“里面每一个“格子”的标签,”值“就是每一个“格子”里放的东西,举个例子可能更容易理解:
 
$学生资料 = array(
  '成绩表' => 学生12年上学期的成绩表,
  '档案' => 学生入学时提交的档案资料
)
 
 
在这个例子里,$学生资料是变量名,它的作用是告诉我们的美女助理PHP,你要去贴着“$学生资料”的“柜子”里找相应的数据,而这个柜子有两个“格子”,一个存放的是学生的成绩表,一个存放的是学生的档案,那么我们想要让PHP美女帮我们把学生的成绩表找出来时,就可以这样给她下达指令:
 $学生资料['成绩表'],这句话的意思是:请帮我到“$学生资料”这个柜子,找到标签为“成绩表”的格子里面存放的东西,那么PHP美女就会听话地帮我们拿出这个“格子”里存放的东西,也就是“学生12年上学期的成绩表”。
 $数组名[键]是在数组中取数据的规定格式。
 
在数组中,除了这种明确标明“键”的形式外,还有一种是没有明确标明“键“的,如:
 
$自行车部件 = array('车把','车轮','踏脚')
 在这种方式下的数组,会自动为它里面的”格子“编上号码,编号从0开始,比如”车把“就是存放在”$自行车部件“这个柜子(数组)里面的编号(键)为”0“的”格子“里,取数据时的操作方式就是:
 $自行车部件[0]
 这样就可以把”车把“给取出来了。
 

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

那么在这个对象里,就有了年龄、身高、体重这几个“属性”,也有了“吃饭”、“睡觉”这几个方法。
 对象的调用,要先进行实例化,用new关键字进行这一个操作
 $小明 = new 小明();
 然后就可以调用$小明这个对象里的属性和方法了,调用方法如下:
 $小明 -> 年龄;这样就可以调用小明的年龄属性
 $小明 -> 吃饭();这样就可以调用小明吃饭这个方法。
 
对象是一个很复杂的数据类型,后面将有章节专门讲解,看不懂的同学不必纠结,大概先了解下概念即可,在学习的前期,暂时是用不到对象这个类型的数据的。
 
3、资源
 最后我们来讲一讲资源。资源,就是我们在用某些函数访问外部文件、数据库、图像画面等等时所产生的一个引导性的数据,它的作用是告诉接下来的程序要使用的资源来自哪里,如何去访问。关于资源也没什么可说的,大家可以参考《细说PHP》(第一版)156页在关于资源的介绍。在以后的使用中,大家就会慢慢理解资源是什么的了。
 

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/899.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息