Работа с объектами классов PHP
Копирование объектов
Так уж устроен PHP, что в нем все переменные, в том числе и объекты, всегда рассматриваются как простой набор значений и копируются целиком. Например, если у нас есть объект $a и мы выполняем оператор $b=$a, то все содержимое $a будет скопировано в $b один-в-один.
<?php
class A {
// Создаем новый метод:
function Test() {
echo "<h1>Hello!</h1>";
}
}
// Создаем объект класса A:
$a=new A();
// Копируем объект $a:
$b=$a;
// Теперь работаем с новым объектом $b
$b->Test(); // Выводит 'Hello!'
?>
Сравнение объектов
В PHP 4 объекты сравниваются очень просто: по именам. Два объекта равны, если они имеют те же самые свойства и значения, а также являются экземплярами одного и того же класса. Сравнение двух объектов осуществляют, используя оператор эквивалентности (===). Вот пример:
<?php
class A {
// Создаем новый метод:
function Test() {
echo "<h1>Hello!</h1>";
}
}
// Создаем объект класса A:
$a=new A();
// Создаем объект класса A:
$b=new A();
// Выводит 'Объекты равны':
if ($a===$b) echo "<h3>Объекты равны</h2>";
?>
Ссылки на объект
PHP позволяет создавать ссылки на объекты. Вот пример:
<?php
class A {
// Создаем новый метод:
function Test() {
echo "<h1>Hello!</h1>";
}
}
// Создаем объект класса A:
$a=new A();
// Ссылка на объект класса A:
$b=& new A();
$b->Test();
?>
Так как PHP5 является практически полноценным объектно-ориентированным языком, то в нем, соответственно, больше возможностей для работы с объектами. Ознакомиться с этими возможностями вы можете здесь.