<?php
echo '<pre>';
class Teste { }
$a = new Teste;
$a->nome = 'não sou besta';
$b = $a;
$b->nome = 'nem eu';
var_dump($a, $b);
unset($a);
var_dump($a, $b);
// SAÍDA
object(Teste)#1 (1) {
["nome"]=>
string(6) "nem eu"
}
object(Teste)#1 (1) {
["nome"]=>
string(6) "nem eu"
}
Notice: Undefined variable: a in /var/www/teste.php on line 17
NULL
object(Teste)#1 (1) {
["nome"]=>
string(6) "nem eu"
}
você pode estar pensando, - sim como faço para que os objetos não sejão referencias uns dos outros numa atribuição?, simples, basta adicionar o operador clone antes do objeto a ser atribuido. por exemplo:
<?php
echo '<pre>';
class Teste { }
$a = new Teste;
$a->nome = 'não sou besta';
$b = clone $a;
$b->nome = 'nem eu';
var_dump($a, $b);
unset($a);
var_dump($a, $b);
// SAÍDA
object(Teste)#1 (1) {
["nome"]=>
string(14) "não sou besta"
}
object(Teste)#2 (1) {
["nome"]=>
string(6) "nem eu"
}
Notice: Undefined variable: a in /var/www/teste.php on line 12
NULL
object(Teste)#2 (1) {
["nome"]=>
string(6) "nem eu"
}
No próximo post falarei do operador clone e o método especial __clone, e não esqueci de falar sobre o PDO, estou esperando, para poder fazer um post legal e entendível.
Nenhum comentário:
Postar um comentário