多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 赋值运算符 基本上的赋值运算符是“=”。一开始可能会认为它是“等于”,其实不是的。他实际上意味着把右边表达式的值赋给左边的运算数。 赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是3。这样就可以做一些小技巧: ``` <?php $a = ($b = 4) + 5; // $a 现在成了 9 ,而$b 成了4. ?> ``` 在基本赋值运算符之外,还有适合于所有[二元算术](http://php.net/manual/zh/language.operators.php),数组集合和字符串运算符的“组合运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如: ``` <?php $a = 3; $a += 5; // set $a to 8,as if we had said: $a = $a + 5; $b = "Hello"; $b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!"; ?> ``` 注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在密集循环中拷贝一些值例如大数组。 在PHP中普通的传值赋值行为有个例外就是碰到对象[object](http://php.net/manual/zh/language.types.object.php)使用了 时,在PHP5中是以引用赋值的,除非明确 使用了[clone](http://php.net/manual/zh/language.oop5.cloning.php) 关键字来拷贝。 ## 引用赋值 PHP只是引用赋值,使用“$var = &$othervar;”语法。引用赋值意味着两个变量指向了同一个数据,没有拷贝任何东西。 **Example #1 引用赋值** ``` <?php $a = 3; $b = &$a; // $b 是 $a 的引用 print "$a\n"; // 输出3 print "$b\n"; // 输出3 $a = 4; // 修改 $a print "$a\n"; // 输出 4 print "$b\n" // 也输出 4,因为$b 是 $a 的引用,因此也被改变 ?> ``` 自PHP5起,new运算符自动返回一个引用,因此再对new的结果进行引用赋值在PHP5.3以及以后版本中会发出一个条E_DEPRECATED错误信息,在之前版本会发出一条E_STRICT错误信息。 例如以下代码将产生警告: ``` <?php class C {} /* The following line generates the following error message:  * Deprecated: Assigning the return value of new by reference is deprecated in...  */ $o = &new C; ?> ```