• Главная
  • Карта сайта
Не найдено

Присвоение одного объекта другому в PHP

Опубликовано: 06.09.2018

видео Присвоение одного объекта другому в PHP

(Создание БД) 5. Создание формы для ввода данных в базу данных (Delphi)

Большинство объектов представляют собой довольно сложные конструкции, которые могут содержать массивы или другие объекты. Это вызывает необходимость оперировать не самими объектами, а ссылками на области памяти, в которой они хранятся. В соответствии с этим присвоение одного объекта другому приводит к получению не двух независимых объектов, а двух имён переменных, каждая из которых содержит ссылку на один и тот же объект и ту же область памяти. Объектно-ориентированная модель PHP не предусматривает перегрузку операторов, и разработчик не может переопределять их поведение для объектов.



На примере класса "myEffect" содержащий один единственный открытый член, мы продемонстрируем этот эффект.

class myEffect { public $_element; } $_start = new myEffect(); $_next = new myEffect(); $_start->_element = 'TRUE_start'; $_next = $_start; # Присвоение одного объекта другому не приводит к созданию его копии; $_next->_element = 'TRUE_next'; echo $_start->_element; # Результат: TRUE_next ;

В результате работы скрипта будет выведено значение "TRUE_next". После того как объект "$_start" присвоен второму объекту "$_next", изменение одного из объектов приводит к изменению обоих объектов одновременно. Присвоение объекта в качестве значения может выполняться не только явным образом при помощи оператора "=", но и неявно, например, передачей объекта функции в качестве аргумента. Все объекты и массивы (с версии 5), автоматически передаются в функцию по ссылке. Это означает, что все изменения, которые функция производит с объектом сохраниться и после её завершения.


3 Урок - функции.

Приведём пример передачи объекта класса "myEffect" функции, где происходит изменение состояния объекта. Передача объекта функции в качестве аргумента:

class myEffect { public $_element; } $_Class_myEffect = new myEffect(); $_Class_myEffect->_element = 9999; $_element = 9999; function effect ($_element, $_Class_myEffect) { $_Class_myEffect->_element = '<div>Новое значение</div>'; $_element = 10000; } effect($_element, $_Class_myEffect); echo $_Class_myEffect->_element; # Результат: Новое значение; echo $_element; # Результат: 9999;

Как видно из примера, функция "effect()" не может изменить значение обычной переменной "$_element", которая передаётся ей в качестве аргумента, тем не менее, объект "$_Class_myEffect" претерпевает изменения. Следует отметить, что хотя массивы, так же как и объекты, передаются по ссылке, они ведут себя подобно обычным переменным, то есть не подвергаются изменению во внешнем коде, если элементы подвергались изменению внутри функции.


Словари

Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss