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<?php
$hook = array('fetch_info' => 'return $data[age];'); echo info
(array('name' => 'user', 'age' => 10)); function info
($data = array('name' => 'user', 'age' => 0), $plugin = true) { global $hook;
if ($plugin) {
echo eval($hook['fetch_info']); }
else{
return $data['name'];
}
}
?>
PD: si acerte no tengo ningun error sedo mi turno a cualquier persona que tenga uno mientras se me ocurre algo
saludos