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.

<?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

Esta entrada foi publicada em Básico, Dicas e marcada com a tag , . Adicione o link permanente aos seus favoritos.

12 pessoas já comentaram! Tá esperando o quê?

  1.  
    Renato Gil disse:

    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!

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.7 no Windows Windows XP
  2.  
    Fabio disse:

    Gostei das funções nas strings, bem útil! Vou usar certamente! Abraços Rafa! vlw

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.7 no Windows Windows XP
  3.  
    Leonardo L Proc&oacu disse:

    Muito bom! A da função eu não sabia mesmo!

    Grande abraço!

    Utilizando PHP PHP
  4.  
    Luis Rohden disse:

    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.

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.10 no Ubuntu Linux Ubuntu Linux
  5.  
    Igor Santos disse:

    realmente muito boas essas dicas… admito que também nao sabia dessa da função… parabéns…

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.11 no Windows Windows XP
  6.  
    Paulo Sampaio disse:

    Cara, sensacional, ótimas dicas.

    Conheci o site tem uma semana +-, tá ótimo! Parabéns!

    Utilizando Google Chrome Google Chrome 2.0.172.37 no Windows Windows 7
  7.  
    Iuli disse:

    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

    Utilizando Mozilla Firefox Mozilla Firefox 3.5.2 no Windows Windows XP
  8.  

    Detalhes simples que fazem a diferença!

    Utilizando Opera Opera 9.80 no Windows Windows 7
  9.  
    Mcj HD disse:

    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!!!

    Utilizando Google Chrome Google Chrome 1.0.154.36 no Windows Windows XP
  10.  
    Bruno Guimarã disse:

    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.

    Utilizando Mozilla Firefox Mozilla Firefox 3.6.12 no Windows Windows XP
  11. Pingback: PHPBlogs» Blog Archive » Habilidades do PHP que talvez você não tenha ouvido falar

  12. Pingback: Habilidades desconhecidas do PHP « Diego Schefer | Desenvolvimento + Design

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">