Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Referências ou ponteiros em PHP
Linux user
Ragen
07/11/2003
Referências, em PHP, significa acessar o mesmo conteúdo de variável através de vários nomes. Porém é comum ouvir erroneamente a expressão "uso de ponteiros" em PHP, o que por sua vez não chega nem a ser parecido como os ponteiros em C: temos em PHP apelidos numa tabela simbólica (em C endereço de memória).
Por: Ragen Dazs
[ Hits: 25171 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

O que referências fazem

Referências PHP permitem fazer duas variáveis se referirem ao mesmo conteúdo.

A analogia mais próxima é a dos arquivos e seus nomes em sistemas UNIX: nomes de variáveis são o caminho completo dos arquivos, enquanto o conteúdo da variável são os dados desse arquivo. Assim, referências pode ser tomadas como os links físicos dentro do sistema de arquivos UNIX. Ou seja:

<?php
   $a = &$b;
   // aqui $a e $b apontam para a mesma variável.
?>

Logo $a e $b são completamente iguais aqui, mas não porque $a está apontando para $b ou vice-versa, mas sim porque $a e $b apontam para o mesmo lugar.

A mesma sintaxe pode ser utilizada com funções que retornam referências e com o operador new (a partir do PHP 4.0.4):

$bar = & new fooclass();
$foo = & find_var ($bar);

Porém vale lembrar que a NÃO utilização do operador & causará a cópia do objeto. Se você utiliza $this em classes, ele operará na instância atual do objeto. A assimilação sem & irá copiar a instância (o objeto em si) e $this irá operar na cópia, podendo não ser esse procedimento sempre desejável. Normalmente você precisará trabalhar com uma instância única, seja por motivos de performance ou de consumo de memória.

Você pode utilizar o operador @ para esconder quaisquer erros em construtores na forma @new, mas isto não funciona quando utilizada a instrução &new. Esta é uma limitação da Zend Engine e irá gerar um erro de interpretação (parser error).

A segunda coisa que referências permitem é passar variáveis por referência. Isto é feito marcando uma variável local de uma função e a variável do escopo chamador como referências ao mesmo conteúdo. Exemplo:

<?php
function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);

echo $a;
?>

Isso fará que $a seja 6. Isto acontece porque na função foo a variável $var se refere ao mesmo conteúdo que $a.

Próxima página >>




Páginas do artigo
   1. O que referências fazem
   2. O que as referências não são
   3. Passagem por referência
   4. Retornando referências
   5. Destruindo referências
   6. Conclusão

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por salvini em 02/03/2007 - 11:51h:

Excelente artigo! Vejo ponteiros sendo muito usados em C e não em PHP... Mas sem dúvida é muito util!

[2] Comentário enviado por thiagop em 09/07/2007 - 11:23h:

Boa, boa boa! :)


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.