如何在不使用数组的情况下同时初始化多个值为零的PHP变量?我希望编写代码,其基本上等同于以下:同时初始化多个PHP变量
$first = 0;
$second = 0;
$third = 0;
$fourth = 0;
如何在不使用数组的情况下同时初始化多个值为零的PHP变量?我希望编写代码,其基本上等同于以下:同时初始化多个PHP变量
$first = 0;
$second = 0;
$third = 0;
$fourth = 0;
$first = $second = $third = $fourth = 0;
这是否会遇到问题,当你改变$第四,你也改变了其余的? – Alec 2016-07-28 08:09:47
如果更改'$ fourth',则不会更改其余部分,因为'0'是一个值,而不是参考。如果你会做'$ fourth = 0; $ third =&$ fourth; $ second =&$ fourth; $ first =&$ fourth',那么所有其他变量将是对'$ fourth'(而不是值“0”)的引用,并且改变'$ fourth'也会反映在其他变量中。 – rid 2016-07-28 17:14:14
这种多重赋值的工作原理是,在PHP中,赋值是一个返回赋值的表达式。因此,'$ fourth = 0'是返回值'0'的表达式。这个值然后被分配给'$ third',并且,因为这个赋值也是一个表达式,所以将'0'赋给'$ third'的返回值也是值'0'等。 – rid 2016-07-28 17:17:04
虽然是可行的使用中的for循环,如下逗号操作者初始化多个变量:
<?php
for ($a=0,$b=0,$c=0,$d=0;;) {
break;
}
var_dump($a,$b,$c,$d);
(见演示here)
list构造提供了一种更有效的方式来执行多个变量屁股ignment,如所描绘的在下面的例子:
<?php
list($first, $second, $third, $fourth) = array(0, 0, 0, 0);
var_dump($first, $second, $third, $fourth);
见演示here
人们可能希望重新考虑避免阵列的使用,以实现多个初始化的变量。与PHP7.1如果一个利用array destructuring可用短数组语法+可以写成简单,健壮的代码,如下所示:
<?php
[$first, $second, $third, $fourth ] = [0, 0, 0, 0];
var_dump($first, $second, $third, $fourth);
见演示here。
如果您需要确定之前未设置初始化变量,请参阅此相关discussion,特别是此response。
你可以使用这个方法用于声明多个具有不同值的变量,这使得它更有用。 – Alec 2016-07-28 08:09:04
@Alec这对于声明具有不同值的变量有点混乱。 – 2017-12-09 08:12:05
可能重复的[赋值给多个变量](http://stackoverflow.com/questions/11651594/assign-same-value-to-multiple-variables) – 2016-08-27 00:56:45