我们在电脑上运行 QQ 软件、阅读电子书、写文档、听音乐等软件操作的时候,这些软件的程序是必须先由计算机读进内存当中的,不然,你干嘛配这么大的内存?不就是为了方便同时跑更多的软件吗?
想必大家对上面的事情应该非常了解吧?
那现在我们要运行 PHP 程序,道理也是一样的,计算机必须把 PHP 程序先读进内存当中,然后再经过 php.exe 解释器进行解释执行。
话说回来了,那变量到底是个什么鬼?
php.exe 在解释执行 PHP 文件时,碰到变量就会在内存当中分配一个空间,你可以把这块空间想象成一个万能的盒子。为啥是万能的盒子呢?因为盒子里面可以放各种各样不同的东西,所以就万能咯。
现在,我们来举例说明。比如我们定义了如下变量:
<?php
$age = 13;
?>
php.exe 在碰到这个变量定义语句的时候,它就会马上在内存中划分出一块空间,并给这个空间取了一个名称叫做 age ,然后在这个空间里面放了一个值为 13 的东西,到这里就完成了对变量 age 的定义过程了。
既然是变量,那我以后可以用别的东西来替换掉 13 咯?那当然咯,不然啥叫万能的盒子捏。
现在大家应该能理解变量是什么东西了吧?很明显,变量不就是一块内存空间嘛。
也许大家还想了解下为啥要用变量吧?
举例说明:我们现在用输出 1 ~ 10000 的数字,我是说难道你要用如下 PHP 语句来输出吗?
<?php
echo 1;
echo 2;
echo 3;
.
.
.
echo 10000;
?>
你真的要写 10000 行吗?
那当然可以咯,如果你真的这么闲的话。
不过,我们可以知道有个名叫变量的东西,可以帮我们更高效的完成这个任务哦。
我们先把程序完整写下来,然后分析过程:
<?php
$num=1;
while($num <= 10000){
echo $num;
$num=$num+1;
}
?>
思路也很简单,我们定义如下变量:
<?php
$num = 1;
?>
意思就是说:“喂,php.exe 解释器,麻烦你在内存中给我划块名字叫做 num 的空间吧,我要把 1 放进去保存起来”。
当 PHP 运行到 <?php echo $num; ?> 的时候,php.exe 就会帮你从 num 的空间中,把 1 拿出来使用,也就是打印出来。
当 PHP 运行到 <?php $num=$num+1; ?> 的时候,php.exe 就会帮你从 num 的空间中,把 1 拿出来与 1 相加变成 2 ,再把 2 放回到 num 空间中。
至于 while($num <= 10000) 则是一个循环判断语句,意思就是当 $num 里面的东西小于 10000 的时候,我们就执行 {} 里面的语句。
所以你看看,用变量代替写死的数字是不是方便得太多太多了?
不知道,你现在理解了变量了没有呢?