Em Busca da “Zend PHP Yellow Pages”
Array Básico
Revelando Arrays
Aug 13th
Algumas vezes é mais simples de trabalhar com os valores de um array, atribuindo-lhes variáveis individuais. Enquanto isto pode ser feito extraindo elementos individuais e a atribuição de cada um deles para uma variável diferente, PHP fornece um atalho rápido, o construtor list():
$sql = “SELECT user_first, user_last, lst_log FROM users”;
$result = mysql_query($sql);
while (list($first, $last, $last_login) = mysql_fetch_row($result)) {
echo “$last, $first – Last Login: $last_login”;
}
Por usar o construtor list(), passando-se três variáveis, que estão ocupando os primeiros três elementos do array que foi atribuído a essas variáveis em ordem, permitindo-nos em seguida, utilizar esses elementos dentro do nosso loop while.
Arrays multi-dimensionais
Aug 12th
Como cada elemento de um array pode conter qualquer tipo de dado, a criação de array multi-dimensional é muito simples. Para criar, simplesmente atribui-se um array, como o valor, para um elemento de outro array. Com PHP, podemos fazer isso para um ou mais elementos dentro de qualquer array permitindo assim vários níveis de assentamento.
$array = array();
$array[] = array(
’a’,
’b’
);
$array[] = array(
’c’,
’d’
);
echo $array[0][1] . $array[1][0];
Nossa saída deste exemplo é “bc”. Como você pode ver, o acesso multi-dimensional a elementos do array se dar de uma forma simples, para isso, basta passar a chave para a especificar elemento que deseja acessar em cada nível.
Arrays enumerativos e associativos
Aug 11th
Arrays podem ser divididos em duas categorias: enumerativa e associativos.
Enumerativa: As matrizes são indexadas usando apenas os índices numéricos.
Associativos: Permitem a associação de uma chave arbitrária para cada elemento.
No PHP esta distinção pode ficar um pouco confusa, porque, você pode criar uma matriz enumerativa e depois adicionar elementos associativos para ele (mantendo em uma enumeração). Além do mais, as matrizes se comportam mais como mapas e podem usualmente ser usadas para simular um número de estruturas diferentes, incluindo filas e pilhas.
O PHP fornece uma grande quantidade de flexibilidade na forma como chaves numéricas podem ser atribuídas a matrizes: eles podem ser qualquer número inteiro (negativo e positivo), e não necessariamente ser sequencial, de modo que uma grande lacuna pode existir entre os índices de dois valores consecutivos sem a necessidade de criar valores intermédios para cobrir sempre que possível as chaves entre os dois. Além disso, as chaves de um array não determinam a ordem dos seus elementos, como vimos anteriormente, quando criamos uma array com as chaves enumerativa que foram fora da ordem natural.
Quando um elemento é adicionado a um array sem especificar uma chave, o PHP automaticamente atribui um numérico que é igual a maior chave numérica já existente na matriz, mais um:
$a = array (2 => 5);
$a[] = ‘a’; // Esse irá ter a chave com o valor 3
Observe que isso é verdadeiro mesmo se o array contém uma combinação de chaves em sequência numérica:
$a = array (’4’ => 5, ’a’ => ’b’);
$a[] = 44; // Esse irá ter a chave com o valor 5
OBSERVAÇÃO: Note que as chaves da matriz são case-sensitive, mas de tipo insensível. Assim, a chave ‘A’ é diferente da chave ‘a’, mas as chaves “1″ e 1 são os mesmos. No entanto, a conversão só se aplica se uma chave string contém a representação tradicional decimal de um número, assim, por exemplo, a chave ’01′não é a mesma que a chave 1.
Imprimindo Arrays
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:
- Embora ambas as funções imprimem recursivamente o conteúdo de valor composto, apenas var_dump() envia os tipos de dados de cada valor.
- Apenas var_dump() é capaz de reproduzir o valor de mais de uma variável ao mesmo tempo
- print_r() Só pode retornar a sua saída como uma string, em vez de escrevê-lo no padrão de saída do script.
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.