Fonte: Some PHP Abilities You May Not Know About
Prefácio
Eu programo em PHP há aproximadamente 6 anos. Durante este tempo, me deparei com diversos artifícios desta linguagem que são, no mínimo, interessantes. Se você veio de outra linguagem, você verá coisas que aparentemente são um pouco estranhas, mas que tornam o serviço muito mais facil.
Tendo dito isto, aqui vão algumas das coisas interessantes que existem no PHP e espero que pelo menos uma delas seja nova pra você! :)
Mão na massa
* Chamar uma função PHP através de uma string
PHP é uma linguagem muito interessante. Para realizar o mesmo no Java, seria muito mais complexo (5-10 linhas aproximadamente). No entanto, na nossa linguagem é bem mais simples de chamar uma função dinamicamente através de uma string.
<?php
$chamar_funcao = 'phpinfo';
$chamar_funcao();
?>
Você pode inclusive passar parâmetros para a variável como se você estivesse chamando uma função diretamente! Aqui vai um exemplo: imagine que você irá criar uma função que aceite tanto uma imagem jpeg quanto uma png.
<?php
switch($tipoImagem){
case 'jpeg':
$criar = 'imagecreatefromjpeg';
break;
case 'png':
$criar = 'imagecreatefrompng';
break;
}
$criar($arquivo); // Vai criar uma imagem tanto jpeg quanto png
?>
* Operador ternário
Ta bom… Eu sei que as outras linguagens também possuem o operador ternário, mas nem todas as pessoas o conhecem.
É o jeito mais rápido de se fazer um IF, sem utilizar estruturas e chaves. Funciona como um IF comum. Ele é composto da sentença a ser comparada, o valor caso verdadeiro e o valor caso falso. Os valores são separados por um caracter ? e um caracter :.
Vejamos um exemplo.
<?php
$testar = true;
echo $testar == true ? "verdadeiro! :)" : "falso! :(";
?>
É bem mais bonito do que
<?php
$testar = true;
if($testar == true){
echo "verdadeiro! :)";
}else{
echo "falso! :(";
}
?>
* Variáveis variáveis
Variáveis variáveis são variáveis que podem ser acessadas dinamicamente através de strings. No código a seguir, você perceberá que é criada uma variável chamada $valor com o nome ‘oi’ e depois colocamos o valor como ‘variável variável’ dentro da variável que será chamada. Depois ao imprimir a variável $oi teremos o valor definido anteriormente.
<?php
$valor = 'oi';
$$valor = 'variável variável'; // Irá colocar este valor na variável $oi
echo $oi; // irá imprimir 'variável variável
?>
* Chamando a função de uma variável variável
Aumentando os nossos horizontes, podemos juntar os dois exemplos anteriores para fazer uma chamada de função a partir de uma variável variável.
<?php
$valor = 'mostrar_info';
$$valor = 'phpinfo';
$mostrar_info(); // Mesma coisa que executar phpinfo()
?>
Claro que não é algo que se usa todos os dias, mas em códigos complexos pode ser bem útil.
Conclusão
Espero que estas funções tenham ajudado em códigos que estejam desenvolvendo.
Um abraço a todos e fiquem com Deus.
Rafael Jaques
Muito bom! Com o tempo, e várias linguagens na cabeça, você acaba esquecendo de suas curiosidades. E a melhor forma de relembrar isto, é vendo os arquivos do blog. Parabéns!
Gostei das funções nas strings, bem útil! Vou usar certamente! Abraços Rafa! vlw
Muito bom! A da função eu não sabia mesmo!
Grande abraço!
Muito interessante este artigo. Antes eu me perguntava qual a função das variáveis variáveis. Mas tenho a impressão que chamar um função por uma variável pode dar um novo sentido a ela. Vou fazer experimentos aqui.
O operador ternário eu uso bastante ^^
No mais, o site é simples, bonito e com conteúdo muito interessante, parabéns.
realmente muito boas essas dicas… admito que também nao sabia dessa da função… parabéns…
Cara, sensacional, ótimas dicas.
Conheci o site tem uma semana +-, tá ótimo! Parabéns!
Muito bom o recurso de variáveis variáveis.
Há alguns dias precisei fazer um teste bem complexo no qual empreguei o recurso.
Tenhos colegas de trabalho que trabalho diretamente com Delphi (atualmente eu tb me incluo neste grupo;-), quando mostrei a eles, chegaram a duvidar que funcionava hehehe…
PHP is the way :D
Detalhes simples que fazem a diferença!
Muito bom mesmo!!!
Isso me ajudou muito mesmo na solução de um problemão de POG num sistema que estou desenvolvendo. Valeu mano.
PHP é foda mesmo!!!
Cara, preciso fazer algo que talvez você possa me ajudar.
Preciso criar um função que seja um invocador de métodos de um objeto.
Exemplo.
public function invocar($obj, $funcao, $parametros)
{
return $obj->$funcao();
}
Neste caso, o parâmetro $parametros não está sendo utilizado pois não sei como utilizá-lo. Os parâmetros são dinâmicos, podem variar em quantidade e em tipos. Como posso fazer para invocar a função passando uma quantidade n de parametros com tipos variados.
Pingback: PHPBlogs» Blog Archive » Habilidades do PHP que talvez você não tenha ouvido falar
Pingback: Habilidades desconhecidas do PHP « Diego Schefer | Desenvolvimento + Design