PHPit - PHP

"Agora, pois, permanecem a fé, a esperança, o amor, estes três; mas o maior destes é o amor." (I Coríntios 13:13)

Habilidades do PHP que talvez você não tenha ouvido falar

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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. $chamar_funcao = 'phpinfo';
  3. $chamar_funcao();
  4. ?>
<?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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. switch($tipoImagem){
  3. case 'jpeg':
  4. $criar = 'imagecreatefromjpeg';
  5. break;
  6. case 'png':
  7. $criar = 'imagecreatefrompng';
  8. break;
  9. }
  10. $criar($arquivo); // Vai criar uma imagem tanto jpeg quanto png
  11. ?>
<?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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. $testar = true;
  3. echo $testar == true ? "verdadeiro! :)" : "falso! :(";
  4. ?>
<?php
    $testar 
true;
    echo 
$testar == true "verdadeiro! :)" "falso! :(";
?>


É bem mais bonito do que

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. $testar = true;
  3. if($testar == true){
  4. echo "verdadeiro! :)";
  5. }else{
  6. echo "falso! :(";
  7. }
  8. ?>
<?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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. $valor = 'oi';
  3. $$valor = 'variável variável'; // Irá colocar este valor na variável $oi
  4. echo $oi; // irá imprimir 'variável variável
  5. ?>
<?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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. $valor = 'mostrar_info';
  3. $$valor = 'phpinfo';
  4. $mostrar_info(); // Mesma coisa que executar phpinfo()
  5. ?>
<?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

Dim dim

 

Comentaí! (09)

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! Renato Gil em 17/03/2009 às 12:55 utilizando o Mozilla Firefox Mozilla Firefox 3.0.7 no Windows Windows XP
Gostei das funções nas strings, bem útil! Vou usar certamente! Abraços Rafa! vlw Fabio em 18/03/2009 às 09:02 utilizando o Mozilla Firefox Mozilla Firefox 3.0.7 no Windows Windows XP
Muito bom! A da função eu não sabia mesmo!
Grande abraço! Leonardo L Procópio em 20/03/2009 às 00:15 utilizando o PHP PHP
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. Luis Rohden em 27/05/2009 às 13:31 utilizando o Mozilla Firefox Mozilla Firefox 3.0.10 no Ubuntu Linux Ubuntu Linux
realmente muito boas essas dicas... admito que também nao sabia dessa da função... parabéns... Igor Santos em 23/06/2009 às 14:26 utilizando o Mozilla Firefox Mozilla Firefox 3.0.11 no Windows Windows XP
Cara, sensacional, ótimas dicas.

Conheci o site tem uma semana +-, tá ótimo! Parabéns! Paulo Sampaio em 27/07/2009 às 11:11 utilizando o Google Chrome Google Chrome 2.0.172.37 no Windows Windows NT
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 Iuli em 05/09/2009 às 22:26 utilizando o Mozilla Firefox Mozilla Firefox 3.5.2 no Windows Windows XP
Detalhes simples que fazem a diferença! Gilberto Albino em 18/10/2009 às 14:52 utilizando o Opera Opera 9.80 no Windows Windows NT
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!!! Mcj HD em 27/10/2009 às 00:20 utilizando o Google Chrome Google Chrome 1.0.154.36 no Windows Windows XP
 

Comenta logo, pô!

* Todos os links inseridos nos comentários possuem rel="nofollow" para impedir com que crawlers considerem os mesmos como relevantes.
* Os e-mails não são divulgados.

Dados pessoais

Você é realmente um humano?

Finalmente, digite seu comentário :)

Caixinha de Sugestões

O que é isso? Aqui você pode simplesmente digitar uma sugestão (artigos, resenhas, melhorias, etc) sem precisar preencher longos formulários. Digite o que quiser na caixinha abaixo e eu lerei com o maior prazer! Se quiser se identificar, fique a vontade!

O PHPit é redigido e mantido por Rafael Jaques - Política de Privacidade.

XHTML/CSS desenvolvido por André Gazola.

PHPit 2007 - 2009 - Alguns direitos reservados.

Feeds ;)

Creative Commons License

PHPit por Rafael Jaques é licensiado sob a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.