2011-11-16 23 views
5

Estoy buscando algo así como lo contrario de extract().PHP - Nombres de variables como Array Keys

Decir que tengo unas pocas variables

$state = "FL"; 
$city = "Hollywood"; 
$zip = "33021"; 

¿Cómo puedo hacer una matriz que utiliza los nombres de las variables como las claves de matriz:

array("state"=>"FL", "city"=>"Hollywood", "zip"=>"33021"); 

Respuesta

7

Se debe utilizar la función de compact() sin embargo. Tales como:

$state = "FL"; 
$city = "Hollywood"; 
$zip = "33021"; 
$array = compact('state', 'city', 'zip'); 

Editar: Parece que hacer exactamente lo que necesita, no sé por qué no cree que lo necesita. Si está buscando algo exactamente opuesto a extract(), como tomar todas las variables disponibles y ponerlas en una matriz, no puede hacer eso, porque PHP tomaría literalmente todas las variables en el ámbito actual y las pondría en la matriz. Tienes que especificar qué variables de alguna manera.

+0

No estoy seguro de si es correcto o no ... pero se da cuenta que dijo explícitamente en la pregunta que NO es 'compacto()' ¿verdad? –

+0

@Greg: Sí, olvidé incluir mi explicación ... – animuson

+0

compact() tiene un inconveniente, ya que la mayoría de los IDE no se darán cuenta de que hay una referencia oculta a esas variables. –