Precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Arquivo de Códigos - Página Inicial
Códigos-fonte
» Códigos-fonte e exemplos completos
Linguagens
» ActionScript
» Adobe AIR
» Adobe Flex
» AJAX
» C
» C#
» C++
» CSS
» Delphi
» DHTML - Dynamic HTML
» HTML/XHTML
» Java
» JavaFX
» JavaScript
» Java Servlets
» JSP - Java Server Pages
» Perl
» PHP
» PHP-GTK
» Python
» Ruby
» Tcl/Tk
» VB.NET
Bancos de Dados
» IBM DB2
» MySQL
Frameworks
» CodeIgniter
» jQuery
» JSF - Java Server Faces
» Qt
» Ruby On Rails
» Struts
» Struts 2
» wxWidgets
» Zend Framework
Container/Servidor
» Apache Tomcat
» Apache Web Server
Ferramentas
» Apache Ant
» iTextSharp (iText#)
Referências
» CSS1 e CSS2
» JavaScript
Serviços On-Line
» Qual é meu IP?
» Tabela Cores HTML I
» Tabela Cores HTML II
» Lista de Mime Types
» Códigos Teclas Virtuais
Usuários On-Line
Visitantes: 27
PHP
O que há de novo no PHP 5?
40 dicas e truques sobre como trabalhar com datas e horas em PHP
60 dicas e truques sobre como trabalhar com strings e caracteres em PHP
PHP e a Orientação a Objetos - POO (Curso Completo)

DHTML
Curso completo de DHTML para iniciantes

CSS
Como definir uma imagem de fundo fixa na página
Definindo uma imagem de fundo para botões HTML
Você está aqui: Inicio -> Tutoriais -> PHP - Aprenda a clonar objetos de uma mesma classe
Aprenda a clonar objetos de uma mesma classe
Quando fazemos a atribuição de objetos de uma mesma classe, uma alteração em um dos objetos afetará os demais. Para evitar isso podemos usar a palavra-chave clone para efetuar uma cópia independente do objeto que queremos. Veja:



<?
// definição da classe Pessoa
class Pessoa{
  public $nome;
}

// Cria um objeto da classe Pessoa
$cliente = new Pessoa();
$cliente->nome = "Marcos de Souza";

// Clona o primeiro objeto
$cliente2 = clone $cliente;

// Altera a propriedade do segundo objeto
$cliente2->nome = "Fernando Alves";

// As propriedades dos objetos continuam diferentes
echo $cliente->nome . "<br>";
echo $cliente2->nome;
?>

A execução deste código mostra que os objetos realmente são independentes agora. Existe, no entando, uma situação em que a clonagem de objetos deve ser feita com muito cuidado. Se os objetos possuirem referências a outros objetos, estas referências serão duplicadas, ou seja, os objetos clonados continuarão atrelados de alguma forma.

Para resolver o problema, o PHP nos fornece o construtor de cópia. Veja como usá-lo no exemplo anterior:

// definição da classe Pessoa
class Pessoa{
  public $nome;

  function __clone(){
    echo "Acabei de ser clonado.";
  }
}

Assim, se houver referências a outros objetos, o construtor de cópia é o lugar ideal para criar novas instâncias das classes referenciadas. Veja um exemplo completo:

class MyFile{
  function setFileName($file_name){
    $this->file_name = $file_name;
  }

  function openFileForReading(){
    $this->file_handle = fopen($this->file_name, "r");
  }

  function __clone(){
    if($this->file_handle){
      $this->file_handle = fopen($this->file_name, "r");
    }
  }

  private $file_name;
  private $file_handle = NULL;
}

1 - PHP e a programação orientada a objetos
2 - Entendendo classes e objetos
3 - Criando sua primeira classe em PHP
4 - Controlando a visibilidade de propriedades e métodos de uma classe
5 - Usando construtores e destrutores
6 - Fornecendo parâmetros de inicialização às suas classes
7 - Usando propriedades estáticas
8 - Usando métodos estáticos
9 - Como usar constantes como membros de classes
10 - Atribuição de objetos de uma mesma classe
11 - Aprenda a clonar objetos de uma mesma classe
12 - Herança
13 - Herança, construtores e a palavra-chave parent
 
 
Arquivo de Códigos - Página Inicial
Veja dicas, truques e anotações de ActionScript
Como inverter (reverter) o conteúdo de uma string
Como verificar a ocorrência de uma substring em uma string
Usando um laço for para percorrer todos os elementos de um array
Como remover todos os espaços de uma string
Convertendo um array em uma string (usando um caractere ou string como separador dos elementos)
Usando o método filter() e uma função de callback para filtrar elementos de um array e construir um novo array
Obtendo o logarítmo natural de um determinado número
Calculando o coseno de um determinado ângulo em radianos
Gerando senhas aleatórias usando ActionScript
Ordenando um array de strings em ordem decrescente
Veja dicas, truques e anotações de outras linguagens
C# (CSharp) - Obter o dia do mês da data atual
GTK+ - Como adicionar um GtkButton à janela principal e exibir uma mensagem quando este for clicado
PHP-GTK - Como carregar uma imagem e exibí-la em uma janela GtkWindow
Java - Detectar duplo-clique nas células de uma JTable
C - Como escrever e ler inteiros int em um arquivo em modo binário
Java - Substituindo texto em um JTextArea
JSP (Java Server Pages) - Passos básicos para se usar formulários em JSP
Python - Aprenda a importar identificadores de outros módulos para o namespace atual
JSP (Java Server Pages) - Aprenda a listar arquivos e diretórios recursivamente usando JSP
C# (CSharp) - Entendendo a classe RichTextBox

       

http://www.arquivodecodigos.net
:: Arquivo de Códigos - Softwares e Consultoria em Programação ::
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734

Desenvolvedor Responsável: Osmar J. Silva

Página Inicial Contatos Pesquisar Mapa do Site