Filippe Brito
Em Busca da “Zend PHP Yellow Pages”
Em Busca da “Zend PHP Yellow Pages”
Jul 17th
Quando estudamos o básico do PHP, mostramos como o comando echo() pode ser usado para a saída de valores de uma expressão, incluindo a de uma única variável. Embora o echo() seja extremamente útil, ele apresenta algumas limitações que restringem sua utilidade em determinadas situações. Por exemplo, quando debugamos um script, muitas vezes precisamos ver não apenas o valor de uma expressão, mas também seu tipo. Outro problema com o echo() está no fato de que é incapaz de lidar com tipos de dados compostos, como matrizes e objetos.
Para evitar esse problema, o PHP fornece duas funções que podem ser usadas para imprimir o valor de uma variável recursivamente: print_r() e var_dump(). Eles diferem entre si em alguns poucos pontos:
Seja o echo(), var_dump() ou print_r(). Pode ser utilizado em qualquer dado o cenário, claramente, depende do que você esteja tentando alcançar. De um modo geral, o ECHO() abrange a maioria das suas bases, enquanto var_dump() e print_r() oferecem uma forma mais especializada de funcionalidades que funciona bem como um auxílio na depuração.
Jul 7th
Todos os Arrays são coleções ordenadas de itens com elementos chamados. Cada elemento tem um valor de identificador, e esse identificados é exclusivo para o array a que pertence. Como nos mencionamos no post anterior, as chaves ou identificadores podem ter números inteiros ou uma seqüência de tamanho indefinido.
Arrays podem ser criados de duas formas. A primeira seria chamando explicitamente o contrutor array(), que pode ser passada uma série de valores e, opcionalmente, as teclas:
$a = array (10, 20, 30);
$a = array (’a’ => 10, ’b’ => 20, ’cee’ => 30);
$a = array (5 => 1, 3 => 2, 1 => 3,);
$a = array();
A primeira linha do código acima, cria um array especificando apenas os valores dos seus três elementos. Como cada elemento de uma matriz também deve ter uma chave, PHP atribui automaticamente uma chave numérica para cada elemento, começando do zero.
No segundo exemplo, as chaves de matriz são especificados na chamada do construtor de array(), neste caso, três teclas alfabéticas (Note que o tamanho das teclas é arbitrária).
No terceiro exemplo, as chaves são atribuídas “Fora de ordem”, então o primeiro elemento do array tem, de fato, a chave com o valor 5. Aqui Você pode notar o uso de uma vírgula após o último elemento, que é perfeitamente legal de uma perspectiva sintática e não tem efeito sobre a matriz final.
Finalmente, no quarto exemplo, podemos criar uma matriz vazia.
Um segundo método de acesso a arrays é através do operador de array ([]):
$x[] = 10;
$x[’aa’] = 11;
echo $x[0]; // Será impresso 10
Como você pode ver, este operador oferece um grau muito maior de controle do array():
no primeiro exemplo, vamos adicionar um novo valor para a matriz armazenada na variável $x. Como não especificamos a chave, o PHP irá automaticamente escolher a chave numérica mais próxima disponível para os nós.
No segundo exemplo, por outro lado, especificamos a chave ‘aa’ no mesmo array. Note que, em ambos os casos, nós não inicializamos explicitamente $x como um array, o que significa que o PHP automaticamente irá convertê-lo para um nó de array, e se $x for vazio, ele simplesmente será inicializado com um array vazio.
Jul 5th
Olá pessoal, mais um grande tempo sem postar aqui no blog, sempre com esperança de que um dia eu consiga postar semanalmente. hehehe…
Bom falaremos nos próximos dias sobre arrays, eles são os Reis incontestáveis das estruturas de dados avançados em PHP. matrizes são PHP extremamente flexíveis, que permitem numérico, teclas auto-incrementadas, teclas alfa numéricas ou uma mistura de ambos, e são capazes de armazenar praticamente qualquer valor, incluindo outras matrizes. Com mais de setenta funções para manipulá-las, matrizes podem fazer praticamente qualquer coisa que você possa imaginar.
Feb 10th
As funções são um dos componentes mais utilizados da linguagem PHP (ou, talvez, de qualquer linguagem de programação). Sem eles, seria praticamente impossível escrever códigos reutilizáveis ou mesmo o uso de técnicas de programação orientada a objetos (Que veremos mais a frente).
Por esta razão, você deve prestar bastante atenção, não só nos princípios da declaração da função,
mas também nas implicações ligeiramente menos óbvias de elementos como a passagem de argumentos por referência e comprimento variável da lista de argumentos.
Se quiser rever algo sobre funções:
Funções
Funções – Parte I – Sintaxe Básica
Funções – Parte II – Retornando Valores
Funções – Parte III – O escopo da variável
Funções – Parte IV – Passando argumentos
Funções – Parte V – Comprimento variável da lista de argumentos
Funções – Parte VI – Passar argumentos por referência
Feb 10th
Argumentos da função também podem ser passados por referência, prefixando com o operador de referência &. Isto permite sua função visualizar e alterar variáveis externas:
<?
function contarTodos(&$count)
{
if (func_num_args() == 0) {
die(“Você precisa especificar pelo menos um argumento.”);
} else {
$args = func_get_args(); // Retorna um array de argumentos
array_shift($args); // Remove o argumento definido no inicio.
$count = strlen ($arg1);
foreach ($args as $arg) {
$count += strlen($arg);
}
}
}
$count = 0;
contarTodos($count, “um”, “dois”, “três”);
echo $count; // será impresso 10
?>
Observação:
Isso é muito importante para você ficar sabendo, que as funções só aceitam variáveis para serem passadas por referência, você não pode passar uma expressão.
Ao contrário do PHP 4, PHP 5 permite que o valor padrão possa ser especificado, mesmo para os parâmetros quando forem declarados por referência:
function cmdExiste($cmd, &$saida = null) {
$saida = ‘onde $cmd’;
if (strpos($saida, DIRECTORY_SEPARATOR) !== false) {
return true;
} else {
return false;
}
}
No exemplo acima, o parâmetro $saída é totalmente opcional, se uma variável não for passada, uma nova será criada no âmbito do cmdExiste() e destruída quando a função retornar.
Feb 9th
Um erro comum quando declarar uma função é a de escrever o seguinte:
function f ($opcional = “null”, $requerido)
{}
Isto não vai provocar alerta de erros, mas também não faz qualquer sentido, porque você nunca será capaz de omitir o primeiro parâmetro ($opcional) se você deseja especificar o segundo, e você não pode omitir o segundo, porque o PHP irá emitir um aviso.
Neste caso, o que você realmente quer é comprimento variável da lista de argumentos, ou seja, a capacidade de criar uma função que aceita um número variável de argumentos, dependendo sobre a circunstância. Um exemplo típico deste comportamento é exibido pela família de funções printf().
PHP fornece três funções internas para lidar com comprimento variável da lista de argumentos:
func_num_args(), func_get_arg() e func_get_args(). Aqui está um exemplo de como elas são utilizadas:
function ola()
{
if (func_num_args() > 0) {
$arg = func_get_arg(0); // O primeiro argumento é a posição 0
echo “Olá $arg”;
} else {
echo “Olá Mundo”;
}
}
ola(“Leitor”); // Exibe “Olá Leitor”
ola(); // Exibe “Olá Mundo”
Você pode usar o comprimento variável da lista de argumentos mesmo se você especificar argumentos no cabeçalho da função. No entanto, isso não irá afetar a forma como o comprimento variável da lista de argumentos irá se comportar, por exemplo, func_num_args() ainda retornará o número total de argumentos passados para a função, ambos declarados e anônimos.
function contarTodos($arg1)
{
if (func_num_args() == 0) {
die(“Você precisa especificar pelo menos um argumento.”);
} else {
$args = func_get_args(); // Retorna um array de argumentos
array_shift($args); // Remove o argumento definido no inicio.
$count = strlen ($arg1);
foreach ($args as $arg) {
$count += strlen($arg);
}
}
return $count;
}
echo contarTodos(“um”, “dois”, “três”); // Exibe ’10’
Observação importante:
É muito importante ter em mente que o comprimento variável da lista de argumentos estão cheios de potenciais armadilhas, enquanto eles são muito poderosos, eles tendem a tornar o código confuso, porque é quase impossível de se prever casos de teste global se uma função que aceita um número variável de parâmetros não é construído adequadamente.
Feb 5th
Ainda sobre o escopo da variável, falaremos agora um pouco mais sobre passagem de argumento, ela permite inserir um número arbitrário de valores em uma função, a fim para influenciar no seu comportamento:
<?
function ola($quem)
{
echo “Olá $quem”;
}
ola(“mundo”);
/* Aqui nós passamos um valor, “mundo”, e a função exibe “Olá mundo”*/
?>
Você pode definir qualquer quantidade de argumentos, na verdade, você pode passar um número arbitrário de argumentos para uma função, independentemente do número especificado na sua declaração.
PHP não irá reclamar a menos que você forneça menos valores do que você declarou.
Além disso, você pode fazer argumentos opcionais, dando-lhes um valor padrão.
Argumentos opcionais devem ser mais direito na lista e só pode tomar valores simples expressões não são permitidas:
<?
function ola($quem = “mundo”)
{
echo “Olá $quem”;
}
ola();
/* Agora nós NÃO PASSAMOS o argumento e a variável $quem IRÁ assumir o valor padrão “mundo”. */ola(“Filippe”);
/* Agora nós PASSAMOS o argumento e a variável $quem NÃO IRÁ assumir o valor padrão “mundo”. */
?>
Feb 3rd
PHP possui três tipos de escopo de variável:
O global, como o próprio nome indica, disponível para todas as partes do script, se você declarar ou atribuir um valor a uma variável fora de uma função ou classe, essa variável será criada no âmbito global.
OBS: Irei falar sobre o escopo da classe mais a frente, quando estiver falando sobre orientação a objetos.
No entanto, cada vez que entra uma função, PHP cria um novo escopo, que, por padrão, não contém qualquer variável e que está completamente isolado da parte externa da função. Qualquer variável definida dentro de uma função já não está disponível após a função tiver terminado a execução. Isso permite a utilização de nomes que podem estar em uso em outro lugar sem ter que se preocupar com os conflitos.
<?
$a = “Olá mundo”;
function ola()
{
$a = “Olá leitor,”;
$b = “Como vai você?”;echo $a . ” ” . $b . “<br/>”;
}
ola(); // Irá imprimir Olá Leitor, Como vai você?
echo $a; // Irá imprimir olá mundo
echo $b; // Irá emitir um warning
?>
Há duas maneiras de acessar variáveis no escopo global dentro de uma função:
A primeira consiste em “importar” a variável dentro do escopo da função, utilizando a declaração global:
<?
$a = “Olá”;
$b = “Mundo”;
function ola()
{
global $a, $b;
echo “$a $b”;
}
ola(); // Exibe “Olá Mundo”
?>
Você vai perceber que tem uma lista global de variáveis separadas por vírgula para ser importado.
Naturalmente, você pode ter muitas declarações globais dentro de uma mesma função, com isso muitos desenvolvedores acham que o uso do global introduz um elemento de confusão no seu código, e que “junta” escopo de uma função com o escopo global podendo facilmente ser uma fonte de problemas. Eles preferem, em vez disso, para usar a matriz super global $GLOBALS, que contém todas as variáveis no escopo global:
<?
$a = “Olá”;
$b = “Mundo”;
function ola()
{
echo $GLOBALS["a"] .” “. $GLOBALS["b"];
}
ola(); // Exibe “Olá Mundo”
?>
Feb 2nd
Jquery é um framework para desenvolvimento em javascript, com ele podemos trabalhar com javascript de forma muito mais pratica e produtiva. Pois já esta integrado em seu código funções para ajax, manipulação de elementos, css, efeitos, eventos entre outras. Sem falar da comunidade que cada vez mais desenvolve novos plugins que podem ser compartilhados e utilizados de forma simples.
Site oficial do Jquery – http://jquery.com/
Versão atual – 1.4
Como funciona : Para isso vamos desenvolver um passo a passo com um exemplo simples.
1 – Realizar download do jquery 1.4 em http://docs.jquery.com/Downloading_jQuery
2 – Criar um novo arquivo HTML como o abaixo e carregue o script do jquery:
OBS: O caminho deve ser o local onde o arquivo “jquery.js” está em relação ao html que você criou.
<!doctype html>
<html>
<head>
<!– Carregando o script do jquery –>
<script type=”text/javascript” src=”jquery.js”></script>
</head>
<body>
<p>jQuery</p>
</body>
</html>
3 – Pronto, agora você já pode manipular completamente sua página com jquery. Vamos adicionar ao exemplo o trecho de código abaixo:
<script type=”text/javascript”>
$(document).ready(function(){
$(“a”).click(function(event){
alert(“Thanks for visiting!”);
});
});
</script>
Ficando assim:
<!doctype html>
<html>
<head>
<!– Carregando o script do jquery –>
<script type=”text/javascript” src=”jquery.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){
$(“p”).click(function(event){
alert($(‘p’).html());
});
});
</script></head>
<body>
<p>jQuery</p>
</body>
</html>
O que acontece é que quando clicarmos em qualquer tag <p> no html irá exibir um alert com seu código html. Visualize o seu html em algum browser. Em breve estarei explicando com mais detalhes como isso aconteceu, sobre o evento click e o método html.
Jan 31st
Olá pessoal, depois de um longo tempo de “férias” estou com o objetivo de postar mais vezes aqui no blog, até porque as moscas já estavam tomando de conta.
Estarei também mudando um pouco o foco inicial do blog, onde iria falar sobre PHP só que com o objetivo de tirar a certificação “Em busca das yellow pages”, ainda pretendo continuar com as matérias nesse sentido, mas agora estarei também falando um pouco mais da minha experiência com jquery, codeigniter, flex, android e o que achar de interessante pela web.
Até breve e aguardem novidades.