简介 变量、常量以及数据类型
在编程中,变量指一个存储值的一个盒子,或者说容器。例如一个箱子,用来放杂物,这个箱子就是一个容器,值就为杂物。容器可以分为很多类型,例如瓶子、被子、盒子等。值也有很多类型,例如厨余垃圾、可回收垃圾、不可回收垃圾、塑料、衣服等。从此可以发现,容器有不同的分类,值也有不同的分类,这些称之为类型。在编程中,一般变量都会设置为跟存储值一致的类型。
变量在编程中为描述可以在程序运行中改变值得容器。
常量跟变量相反,在程序运行中则不能改变。
变量
在上一节中,讲解了php代码是编写在<?php ?> 标记内。变量那么也应该写在该标记内。
php中,变量由$ 开始,后面连接一个变量名。例如我创建一个变量(容器),名为a,在php代码中就应该写为$a。我让这个容器存储一个数字0,可以编写为 $a=0。假设我又创建一个变量,名为b可以写为$b,创建变量的时候就把值给予,可以写为$b=0。如果想要两个变量进行相加,做加法运算可以写为 $a+$b,这时我想显示变量a与变量b相加的值,那么代码可以写为 echo $a+$b。完整代码如下:
<?php$a=0;$b=0;echo $a+$b;
?>
以上代码中有一点要点,我们发现在每一行语句结束后,在末尾都需要有一个分号,这个分号是php语言的语法,当编写完一句代码后,需要在结尾添加分号表示语句结束(编程中所有的标点符号皆为英文舒服法状态下的标点)。
保存文件,把文件另存为至 WWW 根目录下,文件名为 index.php,访问 localhost 或者127.0.0.1 则会直接访问到该php文件(一定要在phpstudy或其它集成软件中开启服务)。
运行结果如下:
由于我们的变量a与变量b的值为0,所以0+0得0,输出显示的值也为0。可以尝试修改变量的值,a改为1,b改为10,代码如下:
<?php$a=1;$b=10;echo $a+$b;
?>
结果如下,值为11:
在以上编程中,如果是新学习编程的读者会疑惑,文章开头说了,变量也是有类型的,那么在这里类型如何体现?原因是php 语言是弱类型语言,弱类型语言是指可以进行隐式类型转换,当我们赋值时,自动转换为赋值内容所匹配的类型。在以上代码中,赋值的是0,为整数类型,这个时候没有明显的说明当前变量是什么类型,直接根据变量,自动变换类型。在之后的学习中将会使用实例来介绍这一点。
常量
刚刚介绍了什么是变量,接下来看一下常量是什么。
从字面意思上来看,变量指可以变的量,常量指不可变的量。这个可变与不可变发生在程序运行时。
例如变量,当变量在最开始定义(赋值)为0,随后再给予这个变量一个值(如2),这个时候是可以更改的,如果使用常量则不能更改。
在这里使用一个示例进行讲解:
<?php$a=1;echo $a;echo '更改后';$a=2;echo $a;
?>
以上代码的书写虽然质量不好,但是能够很好的帮助新手去学习这一个知识点。
代码释义:
-
$a=1:定义一个变量a赋值为1
-
echo $a:显示变量a的值
-
echo ‘更改后’:输出一个 更改后 这个内容
-
$a=2:重新给a赋值为2
-
echo $a:显示重新赋值后 a变量的值
结果如下:
这是可以更改的,我们试一下常量。
常量的定义方式与变量不一致,使用define函数进行定义。函数是一个功能块,就像电饭锅,有煮饭的功能,把米放进去就可以做饭了。define函数是有定义常量的功能,按照指定的方式去定义常量,使用define函数即可完成。
代码如下:
<?phpdefine("b", 10);echo b;?>
代码释义:
- define(“b”, 10):使用define定义一个常量,常量名称为b,值为10
- echo b:输出常量时不需要使用$符号
在浏览器访问localhost进行测试,结果如下:
那我们将常量按照变量的形式去进行修改:
<?phpdefine("b", 10);echo b;b=11
?>
b=11 修改了常量的值,这个时候会报错:
常量是不允许在程序运行过程中再出更改值,所以不能使用 = 符号,会出现语法错误。
数据类型
在php中,使用 gettype() 函数可以得到当前变量的数据类型。函数为一个功能块,gettype 则为得到当前变量数据类型的功能块。
使用方法,在gettype() 函数的圆括号()中,填入变量名即可,例如:
<?phpdefine("b", 10);echo gettype(b);
?>
以上代码定义了一个常量b,赋值10,是个整数,为整数类型。使用 gettype函数,在圆括号中传入一个值 b,这个值b 可以统称为参数。这个时候使用echo 输出,gettype 将会得到传入参数的类型,输出 gettype 返回的值则可以看到这个类型。传参这个过程就像做饭的时候往电饭锅丢入的米,做好饭后将会有一个结果,那就是热腾腾的大米饭。
结果如下:
会显示 integer。integer则代表整数类型。