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

Publicado por Celso Goya em 22/12/2003

[ Hits: 11.029 ]

 


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

Mantendo seu Eclipse atualizado

Dicas para Gnome 2.6

Freecraft suspenso pela Blizzard

Java Web Services Developer Pack

PHP Debug

Leitura recomendada

Escovando bits em PHP - operações bitwise sobre grupos e permissões

FirePHP: Depurador de códigos PHP

Escovando bits em PHP: operações bitwise e uma função debug

Compilando php5 com suporte a mysql e mysqli simultâneamente

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