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

Publicado por Celso Goya em 22/12/2003

[ Hits: 10.535 ]

 


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

Dicas para Gnome 2.6

Freecraft, jogo de estratégia estilo Warcraft para Linux

Usenet e FTP

Mortal Kombat para Linux

Vim com a syntax colorida para PHP, C++, Pascal, etc

Leitura recomendada

Instalação e configuração do fórum phpBB3 no CentOS 7

Documentação do CodeIgniter em português

10 dicas de otimização em programação PHP

Forçando quebra de linha em tabelas HTML usando PHP

Exemplo de conexão ao banco de dados orientada a objeto em PHP+MySQL

  

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