Основное отличие обработки объектов в PHP 5 от PHP 4 заключается в том, что теперь присвоение объекта или его передача в качестве параметра функции происходит по умолчанию по ссылке, а не по значению, как в предыдущей версии.
И если в PHP 4 объекты обрабатывались также как и простые типы данных, что часто приводило к появлению нескольких копий одного и того же объекта, то в PHP 5 такого не происходит, так как каждый объект получает свой собственный числовой идентификатор (handle), который и используется при обращении к объекту.
Таким образом, представленный ниже код, выполненный в PHP 4 и в PHP 5, очевидно может продемонстрировать различия в обработке объектов.
class MyClass {
var $property;
}
$obj1 = new MyClass;
$obj1->property = 1;
$obj2 = $obj1;
$obj2->property = 2;
echo $obj1->property; // Выводит 1 в PHP 4 и 2 в PHP 5
echo $obj2->property; // Выводит 2
?>
В PHP 4 $obj2 представляет собой копию объекта $obj1, а в PHP 5 и $obj1 и $obj2 указывают на один и тот же объект, так как оператор $obj2 = $obj1 копирует не сам объект, а только его идентификатор.
Различные механизмы обработки объектов имеют место по причине того, что Zend Engine 1, исполнявший сценарии в PHP 4, хранил значения всех типов одинаковым образом в специальной структуре, называемой zval (Zend VALue). В PHP 5 также используется zval, однако теперь в нем хранятся все типы данных, за исключением объектов, которые располагаются в новой структуре, получившей название Object Store. Zval же хранит только идентификаторы объектов, вот почему при присвоении или передачи в функцию передается не сам объект, а только его идентификатор.
Данное улучшение позволит значительно увеличить производительность PHP сценариев, где активно используется работа с объектами.
Источник: www.phpworld.ru/
Опубликовал snake_oriental
20 Июля 2008, 00:49:35 ·
1 Комментариев ·
13618 Прочтений ·
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Это интересно
Кран шаровой Ballomax (BROEN)Краны шаровые BROEN BALLOMAX применяются в системах газораспределения в качестве запорного устройства для герметичного перекрытия потока рабочей среды. Кран BROEN BALLOMAX устанавливается на трубопроводе в любом положении в местах, доступных для эксплуатации. Не требует технического обслуживания.
Если вам захочется установить у себя нашу кнопку, мы будем Вам благодарны.
Код внутри
рекомендуем посетить
Кран шаровой Ballomax (BROEN)Краны шаровые BROEN BALLOMAX применяются в системах газораспределения в качестве запорного устройства для герметичного перекрытия потока рабочей среды. Кран BROEN BALLOMAX устанавливается на трубопроводе в любом положении в местах, доступных для эксплуатации. Не требует технического обслуживания.