Se podría hacer algo como esto (no se recomienda por razones de seguridad): www.exampe.com/myscript.php?run=getNames
a continuación:
<?php
if (isset($_GET['run']) && function_exists($_GET['run'])){
echo $_GET['run']();
} else {
echo 'Function not Found';
}
Usted estaría mejor utilizando una clase php en lugar de intentar invocar una función en el espacio de nombres global porque podrían llamar a una función potencialmente peligrosa o llamar a una función que no quiere que vea el resultado:
<?php
class PublicView {
function get_page(){ echo 'hey'; }
}
if (isset($_GET['run']) && method_exists('PublicView',$_GET['run'])){
$view = new PublicView();
$view->$_GET['run']();
} else {
echo 'Function not found';
}
Esto tampoco permitiría llamar a las funciones privadas de la clase, etc.
+1 Esta es la mejor manera. –
No, no, no, no, no, no, no, no, no! ¡Acabas de permitir que cualquier visitante ejecute cualquier función de PHP que quiera! ¿Qué ocurre si eligen ejecutar su función 'purgeDatabase'? ¿O incluso simplemente 'phpinfo'? – VoteyDisciple
Vea a continuación una alternativa basada en clases que evitaría muchas de esas preocupaciones de seguridad. – CodeJoust