座机前加区号:如0105992xxxx
输入您的电话号码,点击通话,稍后您将接到我们的电话,该通话对您完全免费,请放心接听!
1.一个是我们的可变变量,一个是我们的应用赋值的情况,首先来看第一个可变变量,那什么叫可变变量呢?其实呢比较简单记住一个原则就可以了。
2.等量代换的原则,这等量代换的原则以后在我们的程序中也经常会使用到,我们来看开例子,什么叫可变变量。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;
那首先呢你看到,上方声明了三个变量,分别是A,B,C,那接着你在下方写的是echo $$$a;你看到$a的是谁啊,是b对那现在,你碰到$b的值s是c,接着$c的值正好之d,其实就是一个等量代换的原则。
3.你这样写的时候就相当于写了,$$b->$c,这样的一个效果。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;//$$b->$c
结果是d,没有问题这样的一个情况。那接着再往下,再来看第二个引用赋值;什么叫引用赋值呢,先抛出引用赋值不说,首先我们在这声明一个变量,echo '<hr/>';给大家画个图,声明一个变量呢,就相当于在内存中开辟了一块空间,来存储这个值。
假如这是我们的内存。
现在你声明了一个变量,$a=1.
就相当于在这,开辟了一块空间来存储,你这个变量的值,它的大小为1,这样的形式。
那接着你又声明了一个变量,你说写成一个$b=2;
相当于在内存中又开辟了一块空间,存储这个值是2,这样的形式,没问题以此类推。
那现在你来看,我们写成一个$i=1; $j=$i; 相当于什么呢?相当于把$i=1的值赋给了$j,那此时你echo $j; 结果是多少。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;//$$b->$c echo '<hr/>'; $i=1; $j=$i; echo $j;
那结果不用说,是1。
那接着我在写上一下,$j=3; 我对$j重新赋值了,此时你echo $j;肯定是3,那我们$j是几啊,$j、$i还是1。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;//$$b->$c echo '<hr/>'; $i=1; $j=$i; echo $j; echo '<br/>'; $j=3; echo $j,'<br/>'; echo $i; echo '<hr/>';
$i还是1并没有影响到$i。
首先你看到了这一块,相当于是把这个值赋给了这个变量。
那接着我们在重新写一下,$i=1; $j=&$i; 在它前面如果有一个&符号,那代表什么呢,这叫做取地址符。什么叫取地址符呢?我们在图中给大家画一下。当然你怎么写的时候。
你声明了一个变量,$i=1; 在内存中就有一块来保存这个值的,它指向了这块空间,值是一,那现在呢这当做你家的房间,房间大小1平米,每个房间都有一个门牌号。
01当做你们的门牌号,这样的形式那接着再往下,你写成一个$j=&$i,相当于什么呢,相当于它们两个,指向了同一个房间,它是取的这个$i的地址,其实呢就相当于我找到了这个,门牌号了我也进到你家里去住了。它们两个指向的是同一块内存空间。
那现在它们两个住在这一个房子了,房子大小是以平米,它们想要的大小也是1平米。那当通过某个人的努力,把这个房子变大了,变成了多少呢,假如说111,这样的情况,那现在你看到,它们两个想要的大小,是不是一样的也跟着变化呀,对吧。取地址相当于忒两个变量。
互为别名,指向同一块地址,这样的情况那接着你看我把这个$i,变了变成111了对吧,这个$j肯定也会跟着变,这就是取地址,和赋值这样的一个区别。
首先来看一下,我写成一个echo $j; 不用说肯定是1,因为现在还没有变化呢。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;//$$b->$c echo '<hr/>'; $i=1; $j=$i; echo $j; echo '<br/>'; $j=3; echo $j,'<br/>'; echo $i; echo '<hr/>'; $i=1; //取地址符号 $j=&$i; echo $j;
它们两个指向同一个空间。再往下你说我这个$j比较努力把房间变大了,$j=22; 接着你说我在echo $j不用说是22,echo $i呢,对吧,它们两个记住指向的是一个房间,那$j把房间变大了echo $i;也跟着变大。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;//$$b->$c echo '<hr/>'; $i=1; $j=$i; echo $j; echo '<br/>'; $j=3; echo $j,'<br/>'; echo $i; echo '<hr/>'; $i=1; //取地址符号 $j=&$i; echo $j; echo '<hr/>'; $j=22; echo $j; echo '<hr/>'; echo $i;
想用这个大房间的效果,你看到也是22这样的形式。
好再往下它知道了没有问题,现在呢我们说假如说$i;不住了发现这个房间不合适了,它不想住了那现在它就可以去掉它,那注销这个变量我们可以通过php中的一个函数unset($var):注销变量,那销毁变量相当于什么呢?相当于这个变量。
不在这了,它去掉了人没了但是房间在不在啊,在它想用的大小会受影响吗?不会这一点需要注意。接着你来看写上一个,unset($i); 注销掉之后,你再来输出echo $i;的时候,你就看不到任何值。
它的值为null,但是我们在来看$j;有影响吗,我们来看echo $j;。
<?php //可变变量的例子 $a='b'; $b='c'; $c='d'; echo $$$a;//$$b->$c echo '<hr/>'; $i=1; $j=$i; echo $j; echo '<br/>'; $j=3; echo $j,'<br/>'; echo $i; echo '<hr/>'; $i=1; //取地址符号 $j=&$i; echo $j; echo '<hr/>'; $j=22; echo $j; echo '<hr/>'; echo $i; echo '<hr/>'; //unset($var):注销变量 unset($i); echo $i; echo '<hr/>'; echo $j;
它是不会受影响的,你会看到还是22,这样的一个情况所以说把它搞懂了之后呢,你的引用,引用代表取地址符,就很简单了。
那之后呢我们以后再学函数的时候,也会看到这种形式,传值和传引用的一个形式。所以呢在这搞清楚,下来之后等到学到函数的时候,传引用的时候就明白了是怎么回事了,这一点需要注意,这是两个特殊的情况。
Copyright© 2019 巨立鑫 All Rights Reserved 皖ICP备17011067号-4 网址:http://www.jlxpx168.com 技术支持:巨立鑫软件技术部