Ver Mensaje Individual
  #53 (permalink)  
Antiguo 23/12/2010, 10:12
Avatar de carlos_belisario
carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Juego: "¿Dónde está el error?"

pues la variable $hook no esta dentro del ambito de la funcion por lo que al llamarla dentro del eval no estaria llamando a nada.
Al usar las comillas dobles para asignar el valor al indice 'fetch_info' toma el valor de la variable $data['age'] que en este caso es nulo, se tendrian que utilizar las comillas simples.
y el tercero que fue el que me costo entender tube que ir al manual es que la funcion eval al tener un return devuelve un resultado por lo que en el llamado a la funcion eval deberia de haber un echo y un condicional para no entrar en el retrun por defecto de la funcion dejo el codigo porque a lo mejor me hice un enredo cuando explique
Código PHP:
Ver original
  1. <?php
  2. $hook = array('fetch_info' => 'return $data[age];');
  3. echo info(array('name' => 'user', 'age' => 10));
  4. function info($data = array('name' => 'user', 'age' => 0), $plugin = true) {
  5.     global $hook;  
  6.     if ($plugin) {                 
  7.         echo eval($hook['fetch_info']);
  8.     }  
  9.     else{
  10.         return $data['name'];  
  11.     }  
  12. }
  13. ?>
PD: si acerte no tengo ningun error sedo mi turno a cualquier persona que tenga uno mientras se me ocurre algo saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way