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

  • Identifique-se para criar novos tópicos neste fórum
  • Visitantes anônimos não podem postar neste fórum
Celso Goya  Iniciante De: São Paulo - SP - Brasil  Postagens: 0

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 devemos usar 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 prá fora.
Echo ($nomefuncao("Chutando o balde") );

$nomefuncao("
");

Teste("Jeito normal");


[]'s.
Celso Goya

Claudia Antonini Vitiello Callegari  Participativo De: Guarulhos - São Paulo - Brasil  Postagens: 74

Que legal, valeu gostei da sua dica.

Gilberto Galdino de Oliveira  Membro De: Guarulhos - São Paulo - Brasil  Postagens: 171

Só valem para funções ou dá para nomear os objetos utilizando as suas caracteristicas?

Exemplo, criar novas propriedades em um objeto que foi nomeado?

Celso Goya  Iniciante De: São Paulo - SP - Brasil  Postagens: 0

gilberto,

Se entendi bem sua pergunta, creio que não vale para objetos, porém se você usar aquela syntaxe com :: duplo dois pontos acho que deve funcionar

Vou ver se faço o teste

[]'s.
Celso Goya

Gilberto Galdino de Oliveira  Membro De: Guarulhos - São Paulo - Brasil  Postagens: 171

Oki escreveu:
Gilberto,

Se entendi bem sua pergunta, creio que não vale para objetos, porém se você usar aquela syntaxe com :: duplo dois pontos acho que deve funcionar

Vou ver se faço o teste

[]'s.
Celso Goya

Exatamente, esta seria a ideia.
Em alguns pontos do kernel do XOOPS encontramos referencias a este tipo.
A ideia de multisites estaria baseada nisto, em nomear objetos de acordo com o perfil do utilizador e baseado em suas preferencias.
Com as trocas de propriedades podemos estar utilizando instancias diferentes e assim dados diferentes, módulos diferentes, de diretórios diferentes, ih acho que viajei...

Celso Goya  Iniciante De: São Paulo - SP - Brasil  Postagens: 0

gilberto,
Não é viagem não, porém o problema que impede isso de ser factível é que não é possível armazenar um objeto em um SESSION, se fosse possível estaria tudo resolvido, Hehe.

Bom, eu não consigo imaginar uma outra forma para se fazer isso se não esta.

[]'s.
Celso Goya

Gilberto Galdino de Oliveira  Membro De: Guarulhos - São Paulo - Brasil  Postagens: 171

Oki escreveu:
Gilberto,
Não é viagem não, porém o problema que impede isso de ser factível é que não é possível armazenar um objeto em um SESSION, se fosse possível estaria tudo resolvido, Hehe.

Bom, eu não consigo imaginar uma outra forma para se fazer isso se não esta.

[]'s.
Celso Goya

Ué, mas não podemos mandar um objeto para o banco com esta técnica?
Se são refrencias não seria só ler as meninas e recriar a partir de uma leitura?
Outro problema é que a dependencia do banco seria mortal, um erro de gravação pode gerar um crash geral.
Mas vou fazer experiencias com isto.

Celso Goya  Iniciante De: São Paulo - SP - Brasil  Postagens: 0

gilberto,
Existe uma biblioteca chamada PHPLIB, que faz isso, mas sinceramente eu não tentaria, acho que dá trabalho demais. É meio re-inventar a roda, porque no PHPLIB tem um negócio chamado GC Garbage Collector que é horrível, ele funciona com base em uma formulazinha de probabilidades que deveria funcionar como o bogomips do Linux, mas está muito longe disso. E também tem problemas de data e hora, então é complicado estabelecer as sessões.

[]'s.
Celso Goya

Gilberto Galdino de Oliveira  Membro De: Guarulhos - São Paulo - Brasil  Postagens: 171

Oki escreveu:
Gilberto,
Existe uma biblioteca chamada PHPLIB, que faz isso, mas sinceramente eu não tentaria, acho que dá trabalho demais. É meio re-inventar a roda, porque no PHPLIB tem um negócio chamado GC Garbage Collector que é horrível, ele funciona com base em uma formulazinha de probabilidades que deveria funcionar como o bogomips do Linux, mas está muito longe disso. E também tem problemas de data e hora, então é complicado estabelecer as sessões.

[]'s.
Celso Goya

Está bom, resumindo, esqueça... certo... esquecendo.
Mas vamos voltar para a functions que dá jogo e está funcionando, ehehe.

  Pesquisa avançada






Entrada

Codinome:


Senha:





Perdeu a senha?  |Cadastre-se!


Quem nos visita
Há 35 visitantes neste momento... (19 na seção Fóruns)

Associados: 0
Anônimos: 35

outros...

Banner XOOPS Cube