Initializing Multiple PHP Variables Simultaneously

Php

Php Problem Overview


How may I initialize multiple PHP variables with a value of zero simultaneously without using an array? I wish to write code that is essentially equivalent to the following:

$first = 0;
$second = 0;
$third = 0;
$fourth = 0;

Php Solutions


Solution 1 - Php

$first = $second = $third = $fourth = 0;

Solution 2 - Php

While it is feasible to initialize multiple variables using a comma operator within a for-loop, as follows:

<?php
for ($a=0,$b=0,$c=0,$d=0;;) {
    break;
}
var_dump($a,$b,$c,$d);

(See demo here)

the list construct provides a more efficient way to perform multiple variable assignment, as depicted in the following example:

<?php

list( $first, $second, $third, $fourth ) = array( 0, 0, 0, 0 );
var_dump($first, $second, $third, $fourth );

See demo here

One may wish to reconsider avoiding the usage of arrays to achieve multiple initialized variables. With PHP7.1+ one may write simpler, robust code if one utilizes array destructuring available with short array syntax, as follows:

<?php

[$first, $second, $third, $fourth ] = [0, 0, 0, 0];
var_dump($first, $second, $third, $fourth );

See demo here.

If one needs to be certain that the variables being initialized were not previously set, see this related discussion, particularly this response.

Solution 3 - Php

> If you want to initialize multiple array variables then use

# Initialize multiple array variables with Empty values
$array_1 = $array_2 = $array_3 = array();

# Initialize multiple array variables with Some values in it
list( $array_1, $array_2, $array_3) = array('one','two','three');

# Print value of array variables
var_dump($array_1,$array_2,$array_3);

Output:
*******
string 'one' (length=3)
string 'two' (length=3)
string 'three' (length=5)

> If you want to initialize multiple regular variables then use

# Initialize multiple regular variables with values
$a = $b = $c = 'Hello PHP';
echo $a.'<br>',$b.'<br>', $c.'<br>';

Output:
*******
Hello PHP
Hello PHP
Hello PHP

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiondreamer_999View Question on Stackoverflow
Solution 1 - PhpridView Answer on Stackoverflow
Solution 2 - Phpslevy1View Answer on Stackoverflow
Solution 3 - PhpYogi GhorechaView Answer on Stackoverflow