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
<?php $chamar_funcao = 'phpinfo'; $chamar_funcao(); ?>
<?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
<?php switch($tipoImagem){ case 'jpeg': $criar = 'imagecreatefromjpeg'; break; case 'png': $criar = 'imagecreatefrompng'; break; } $criar($arquivo); // Vai criar uma imagem tanto jpeg quanto 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.
Código: Alternar entre o modo de cópia/destaque
<?php $testar = true; ?>
<?php
$testar = true;
echo $testar == true ? "verdadeiro! :)" : "falso! :(";
?>
É bem mais bonito do que
Código: Alternar entre o modo de cópia/destaque
<?php $testar = true; if($testar == true){ }else{ } ?>
<?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
<?php $valor = 'oi'; $$valor = 'variável variável'; // Irá colocar este valor na variável $oi ?>
<?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
<?php $valor = 'mostrar_info'; $$valor = 'phpinfo'; $mostrar_info(); // Mesma coisa que executar phpinfo() ?>
<?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
PHP levado a sério