PHP变量引用赋值与变量赋值变量的区别

变量默认总是传值赋值。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。有关这种类型的赋值操作,请参阅表达式一章。

<?php
$foo='abc';
$b=$foo;
$b="my name is $b";
echo "$b"; //my name is abc
echo "$foo"; // abc

PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。

使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。例如,下列代码片断将输出“My name is Bob”两次:

<?php
$foo  =  'Bob' ;               // 将 'Bob' 赋给 $foo
 $bar  = & $foo ;               // 通过 $bar 引用 $foo
 $bar  =  "My name is  $bar " ;   // 修改 $bar 变量
 echo  $bar ;
echo  $foo ;                  // $foo 的值也被修改
 ?> 

 虽然在 PHP 中并不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值 - 布尔类型的变量默认值是 FALSE ,整形和浮点型变量默认值是零,字符串型变量(例如用于 echo 中)默认值是空字符串以及数组变量的默认值是空数组。 

原文地址:https://www.cnblogs.com/perseverancevictory/p/4192779.html