本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1 $和$$定义
$var(一个美元)是一个正常变量,名称为:var,存储任何值,如:string,integer,float等。 $$var(两个美元)是一个引用变量,用于存储$var的值。 为了更好地理解$和$$之间的区别,下面来看看一些例子。
2 示例
2.1 示例1
<?php
$x = "abc";
$$x = 200;
echo $x."<br/>";
echo $$x."<br/>";
echo $abc;
运行结果: abc 200 200
在上面的例子中,我们为变量x赋值为:abc。引用变量$$x的值分配为200。现在我们打印出变量:$x,$$x和$abc。由此可以看出:$$x和$abc的值是相同的,即:因为 $x的值为abc,所以 $$x(${$x})计算后为$abc。
2.2 示例2
<?php
$name = "Cat";
${$name} = "Dog"; // => $Cat = "Dog"
${${$name}} = "Monkey"; // => $Dog = "Monkey"
echo $name . "<br>"; // $name = "Cat"
echo ${$name} . "<br>"; // $Cat = 'Dog'
echo $Cat . "<br>";
echo ${${$name}} . "<br>"; // $Dog
echo $Dog . "<br>";
运行结果: Cat Dog Dog Monkey Monkey
在上面的例子中,我们为变量$name指定了一个值Cat。 引用变量${$name}分配一个值:Dog, ${${$name}}分配一个值:Monkey 。 我们只需要进行替换即可,下面的等式是恒成立的:
$name = "Cat";
${$name} = "Dog"; => $Cat = "Dog";
${${$name}} = "Monkey"; => $Dog = "Monkey";
3 引用
引用就是让多个变量名同时指向计算机内存中同一块地址,其中一个变量修改内存中的值,那么通过其他变量名拿到的值,也会跟着变化。
<?php
$b = 1202;
$c = &$b;
echo '修改数据前<br>';
echo '$b=' . $b . '<br>';
echo '$c=' . $c . '<br>';
$c = 200;
echo '修改数据后<br>';
echo '$b=' . $b . '<br>';
echo '$c=' . $c . '<br>';
Reference
写在最后
欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
