如何在不使用數組的情況下同時初始化多個值爲零的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