Saltar al contenido

¿Asignar el mismo valor a múltiples variables a la vez?

Posteriormente a observar en diferentes repositorios y páginas webs finalmente hemos dado con la respuesta que te mostramos pronto.

Solución:

$var_a = $var_b = $same_var = $var_d = $some_var = 'A';

Para agregar a la otra respuesta.

$a = $b = $c = $d

en realidad significa $a = ( $b = ( $c = $d ) )

PHP pasa tipos primitivos int, string, etc. por valor y objetos por referencia por defecto.

Eso significa

$c = 1234;
$a = $b = $c;
$c = 5678;
//$a and $b = 1234; $c = 5678;

$c = new Object();
$c->property = 1234;
$a = $b = $c;
$c->property = 5678;
// $a,b,c->property = 5678 because they are all referenced to same variable

Sin embargo, también PUEDE pasar objetos por valor, usando la palabra clave clonepero tendrás que usar paréntesis.

$c = new Object();
$c->property = 1234;
$a = clone ($b = clone $c);
$c->property = 5678;
// $a,b->property = 1234; c->property = 5678 because they are cloned

PERO, NO PUEDE pasar tipos primitivos por referencia con palabra clave &usando este método

$c = 1234;

$a = $b = &$c; // no syntax error
// $a is passed by value. $b is passed by reference of $c

$a = &$b = &$c; // syntax error

$a = &($b = &$c); // $b = &$c is okay. 
// but $a = &(...) is error because you can not pass by reference on value (you need variable)

// You will have to do manually
$b = &$c;
$a = &$b;
etc.

Si crees que te ha resultado útil este post, nos gustaría que lo compartas con más seniors de esta manera nos ayudas a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *