Funções com nomes variáveis em PHP, isso existe sim!

Publicado por Celso Goya em 22/12/2003

[ Hits: 10.805 ]

 


Funções com nomes variáveis em PHP, isso existe sim!



Bom, este é mais um desses recursos do PHP que tendem à paranormalidade, mas vamos lá. É possível sim, criar funções ou então sobrecarregar funções com nomes variáveis.

Para fazer isso veja o seguinte código:

// Esta é uma função simples
function teste($texto = "") {
echo($texto);
}

// Mais outra função simples
function abusandodophp($texto = "") {
return strlen($texto);
}

// Este é o nome da função que desejamos executar
$nomefuncao = "teste";

// Agora é só fazer de conta que a variável é a própria função e pronto
$nomefuncao("A Mágica está funcionando");
$nomefuncao("
");

// Vamos mudar a função que queremos executar
$nomefuncao = \"abusandodophp\";

// Agora vamos executá-la dentro de um comando que usa a precedência, ou seja, precisa ser executado de dentro para fora...
echo ($nomefuncao("Chutando o balde"));

$nomefuncao("
");

teste("Jeito normal");

[]'s
Celso Goya
moinho.net

Outras dicas deste autor

su/sudo em modo visual

netselect-apt :: Encontre o servidor apt mais perto de você!

Easter eggs para PHP, Google e Firefox

xSane :: Acabe já com a insanidade do seu scanner

weblogic :: iniciando como serviço

Leitura recomendada

Instalando Zend Framework

Lista de discussão de desenvolvedores PHP de Minas Gerais

Criando variáveis dinâmicas em PHP a partir de um formulário

Populate Object - Aumentando a produtividade de forma bastante simples (PHP + formulário HTML)

Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]

  

Comentários
[1] Comentário enviado por TiagoSouza em 27/02/2012 - 14:30h

Doidera, mas não tem utilidade :D

[2] Comentário enviado por removido em 02/08/2014 - 20:12h

rsrs, isso ae todo mundo que programa em PHP conhece...

É o mesmo que:

<?php

class Teste{

public function prints($message)
{
echo $message;
}
}

function newInstance($class)
{
return new $class();
}

$Teste = newInstance("Teste");
$Teste->prints("Hello World!\r\n");



$myFunction = function($message)
{
echo $message;
};

$myFunction("xd\r\n");
?>



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts