2010-04-28 17 views
7

explicar esta pregunta de la entrevista a mí:

Q: Si la variable $ a es igual a 5 y variable $ b es igual a un personaje, ¿cuál es el valor de $$ b?

A: 5, es una referencia a la variable existente.

+2

¿Qué está haciendo ese '-100' allí? –

+0

@Fernandes 100 es la respuesta! –

+0

¿por qué 100 es la respuesta? ¿No es $$ b debería ser igual a 5? – anru

Respuesta

8

Eso es un variable variable. PHP buscará la variable con el nombre almacenado en la cadena $b. Entonces, si $b == 'a' entonces $$b == $a.

Es muy similar a los punteros en C, excepto que usan cadenas de nombre de variable en lugar de direcciones de memoria para señalarse entre sí. Y se puede eliminar la referencia tantas veces como desee:

$a = 5; 
foreach (range('b', 'z') as $L) { 
    $$L = chr(ord($L) - 1); 
} 
echo $$$$$$$$$$$$$$$$$$$$$$$$$$z; 

Salida:

5 
+1

hermosa ...... –

+2

@Stefano: esa es una palabra para ... – nickf

+0

Murali podría estar en blanco al respecto, pero el ejemplo es increíble ... –

0
$$b - 100 
= $a - 100 // substituting $b=a 
= 5 - 100 
= -95 
0

no sé Si el '?' es erróneo en la declaración '$$ b? - 100 'pero no creo que compile.

Sin embargo:

$a = 5 
$b = 'a'; 
$c = $$b - 100; 

$ c será igual a -95, porque $$ b es una referencia variable variable y dado que $ a = 5 se resuelve a $ a (5) - 100, o -95 .

+0

'$$ b' es la sintaxis perfectamente legal –

+0

@webdestroya pero '$$ b?' no es –

+0

Sí, me refería al '?' personaje del '$$ b? - 100 'parte de la pregunta. :) – mkgrunder

1

-95 es la respuesta como si u echo $b u conseguirá salida como "a" y si u echo $a u conseguirá a cabo, sino como "5"

por lo tanto, en este sentido, cuando u $(echo $b) cuales misma que $(a) por lo tanto, u obtendrá como "5-100", que es "-95"

0

la respuesta es -95

$a - 100 
Cuestiones relacionadas