usando sencillo que programacion operario operador lista introduccion hacer funciones empaque como comandos buscador avanzado php variables operators

php - sencillo - manual de funciones operario de empaque



¿Qué hacen los operadores ''&='' y ''= &''? (4)

''& ='' y ''= &'' son operadores muy diferentes.

''& ='' es un operador de asignación a nivel de bits:

$var = false; $var &= foo(); // will call foo() $var = false & foo(); // will call foo() $var = $var && foo(); // will not call foo()

''= &'' devuelve una referencia:

$a = $b; //$a points to $b $a =& $b; //$a does NOT point to $b... both point to the same thing.

Encontrar la respuesta a esto es mucho más difícil de lo que hubiera pensado. Ya que no tengo ni idea de cómo llamarías a esto, es difícil realizar una búsqueda en Google, ya que ignorará esos caracteres.

Intenté navegar por la página de Operadores de asignación de PHP , e incluso las páginas de otros operadores, y no encontré nada que me dijera exactamente lo que hacen. No solo quiero adivinar en función de la única función que tengo que la utiliza. Entonces, ¿qué hacen exactamente los operadores ''& ='' y ''= &''?

Todo lo que sé es que establece una variable, que sería la parte ''='', así que realmente necesito saber qué está haciendo la parte ''&''.

Por favor no digas lo obvio; Necesito a alguien que explique exactamente lo que hacen. Sé que uno de ellos es ''bitwise'', pero eso no significa nada para mí.


=& asigna por referencia

$a = 1; $b =& $a; $a++; echo $b; // 2

Del Manual de PHP en Referencias:

Las referencias en PHP son un medio para acceder al mismo contenido variable con diferentes nombres.

&= es una asignación AND a nivel de bits

$a = 1; $a &= 1; // is the same as $a = $a & 1; echo $a; // 1

De Wikipedia en Bitwise Y:

Un AND a nivel de bit toma dos representaciones binarias de igual longitud y realiza la operación AND lógica en cada par de bits correspondientes. En cada par, el resultado es 1 si el primer bit es 1 Y el segundo bit es 1. De lo contrario, el resultado es 0. Por ejemplo:

0101 AND 0011 = 0001

EDITAR: para un ejemplo práctico sobre operaciones bitwise, vea mi respuesta a Bitwise Operations en PHP


=& está asignando por referencia .

Asigna una variable no por valor sino por referencia.

Ejemplo:

$a = ''foo''; $b =& $a; $b = ''bar''; echo $a;

imprime la bar porque $b tiene una referencia a $a y, por lo tanto, cambiar $b también cambia el valor de $a .

&= es bit a bit AND .

Ejemplo:

$a = 4 // binary representation: 100 $b = 1 // binary representation: 001

Entonces $a &= $b es solo corto para $a = $a & $b y significa: tomar cada bit y realizar la operación AND , es decir:

0 & 1 = 0 1 & 0 = 0 1 & 1 = 1 0 & 0 = 0

Por lo tanto

1 0 0 AND 0 0 1 ----- 0 0 0 => $a = 0 // bit representation 0 ;)


&=

es el operador de asignación "AND" a nivel de bits. Realiza un "AND" en la variable y almacena el resultado. (Más información está en los operadores de Bitwise y más información general en Operaciones de Bitwise en C ).

los

=&

operador es una asignación por referencia, lo que hace que la variable apunte no al valor de la otra variable o constante, sino a esa ubicación de memoria (más información se encuentra en Qué son las referencias ).