2011-02-06 16 views
40

Supongamos que tengo una matriz, como esto:crear nuevas variables de claves de matriz en PHP

$foo = array('first' => '1st', 
      'second' => '2nd', 
      'third' => '3rd'); 

¿Cómo puedo escoger yo las llaves de la matriz y hacer que sus propias variables? Por ejemplo, la matriz $foo se haría:

$first = '1st'; 
$second = '2nd'; 
$third = '3rd'; 

Lo pregunto porque estoy creando un framework MVC para ayudar con mi programación orientada a objetos, y me gustaría al usuario pasar una variable a la función de carga de vistas, que le permitirá al usuario usar variables en la plantilla sin tener que saber cómo se llamó la matriz.

Por ejemplo:

$array = array('title' => 'My blog!' [...]); 
$this->load->view('view.php', $array); 

view.php:

echo $title; 

Salida:

Mi Blog!

+0

P.S. el ejemplo es de codeIgniter right –

+0

Esto no es relevante para una pregunta exacta. En algunos otros casos, si tiene una matriz más pequeña de valores con el mismo orden, también puede asignarlos por lista() que es más amigable para IDE. '$ info = array ('café', 'marrón', 'cafeína'); list ($ drink, $ color, $ power) = $ info; ' –

Respuesta

20

usted puede hacer esto:

foreach($foo as $k => $v) { 
    $$k = $v; 
} 
+3

+1, buen uso de las variables variables :) –

4

Un método simple es usar variables variables:

foreach($foo as $key => $value) { 
    $$key = $value; 
} 

echo $first; // '1st' 

Tenga en cuenta que esto se desalienta generalmente sin embargo. Sería mejor modificar su sistema de plantillas para permitir que las variables tengan un alcance dentro de la plantilla. De lo contrario, podría tener problemas con las colisiones y probar su existencia, etc.

Cuestiones relacionadas