- •№1 Знать расшифровку и основной смысл понятий: dns, html, xhtml, xml, sgml, ip, http, w3c, ietf, css, ecmaScript, dom, php
- •№2 Основные понятия Интернет
- •№3 Предназначение языков разметки html и xhtml.
- •№4 Структура xhtml документа.
- •№5 Логическое и физическое форматирование в html и xhtml.
- •№6 Гипертекстовые ссылки, абсолютные и относительные url.
- •№7 Отличия между html и xhtml.
- •№8 Способы присоединения стиля к тегу.
- •№10 Теги div и span.
- •№11 Стилевые классы.
- •№9 Синтаксис стилей.
- •№12 Создание css макетов с фиксированной шириной.
- •№13 Центрирование css макетов с фиксированной шириной
- •№14 Создание текучих макетов при помощи css
- •№15 Способы позиционирования элементов документа (свойства position и float).
- •№16 Отличительные особенности синтаксиса JavaScript
- •№17 Область видимости переменных в JavaScript.
- •№18 Простые объекты в JavaScript, свойства универсального класса Object.
- •№19 Массивы в JavaScript.
- •№20 Использование регулярных выражений в JavaScript.
- •№21 Функции в JavaScript.
- •№22 Конструкторы в JavaScript
- •№23 Прототипы в JavaScript.
- •№24 Динамическое формирование содержимого документа при помощи JavaScript.
- •№25 Объект Document и его свойства.
- •№26 Объектная модель w3c dom, представление документов в виде дерева.
- •№27 Способы обработки событий в JavaScript (api Level 0 и api Level 2).
- •№28 Объекты, описывающие свойства событий.
- •№29 Таймеры в JavaScript.
- •№30 Програмное обеспечение Web-сервера (lamp), основные возможности и предназначение.
- •№31 Структура каталогов сервера Apache
- •№32 Настройка виртуальных хостов в Apache 2
- •№33 Базовый синтаксис php
- •№34. Логические управляющие структуры в php
- •№35 Управляющие структуры повторения в php
- •№36 Функции, определяемые пользователем
- •№37 Динамические переменные и функции в php
- •№38 Использование ссылок в php.
- •№39 Строки в php
- •№40 Массивы
№38 Использование ссылок в php.
Несмотря на то, что в РНР не существует понятия указателя, все же возможность передавать ссылки на другие переменные остается. Ссылки в РНР бывают двух видов: жесткие и символические. Первые упрощенно называют просто "ссылки", а вторую группу - переменные переменные. Жесткие ссылки пришли в РНР с 4 - й версией, а до этого (в 3 - 1 версии) существовали лишь ссылки символические.
Так же как профессиональный кейтеринг предоставляет возможность выбора услуг в широком ассортименте, так и в РНР ссылки открывают возможность доступа к содержимому одной переменной с использованием разных имен. В РНР ссылки не являются псевдонимами таблиц символов и совершенно не похожи на указатели языка Си.
В РНР содержимое переменной и присвоенное ей имя - суть разные понятия и именно поэтому одному содержимому могут быть присвоены различные имена. Непрофессиональная аналогия: оформление цветами может проводиться по разному поводу и одни и те же цветы использоваться для выражения разного смысла. Переходя на язык программистов, самой простой аналогией могу служить файлы - имена переменных и имена файлов Unix, которые являются элементами каталогов, в то время, как содержимым переменных являются сами файлы. Так вот ссылки в РНР можно сравнить с жесткими ссылками (hardlinks) используемые в системах файлов Unix.
РНР и жесткие ссылки
В РНР жесткая ссылка является простой переменной, которая может выступить в роли синонима другой переменной. Обратите внимание, что многоуровневые ссылки в РНР не поддерживаются. В этой связи жесткие ссылки есть смысл рассматривать именно как синонимы и не приписывать им иного, более глубокого содержания. Для создания жесткой ссылки следует использовать амперсанд (&).
РНР и символические ссылки (переменные переменные)
Символическую ссылку следует рассматривать, как строковую переменную, содержащую информацию о другой переменной (переменная переменная). Символическая ссылка ссылается на переменную, а чтобы добраться до ее значения, перед именем ссылки проставляют знак $. Другими словами, для того, чтобы обычная строковая переменная могла использоваться в качестве ссылки, перед ней проставляется дополнительный символ $. Интерпретатор понимает это так: учитывать не буквальное значение $p, а учесть значение переменной, чье имя хранит переменная $p. Впрочем, символические ссылки используются не чаще, чем спички на детский день рождения.
Передача значений по жесткой ссылке
У вас есть также возможность передачи по ссылке переменных в пользовательскую функцию. Это может потребоваться тогда, когда требуется разрешение для функции модифицировать ее аргументы. Еще одна возможность пользовательских функций в РНР - возврат по ссылкам.
Жесткая ссылка и переменная (объект), на которую эта ссылка ведет, абсолютно равноправны, но, вместе с тем, изменение каждой из этих двух составляющих влечет за собой и изменение другой. При помощи оператора Unset() можно разрывать связь между ссылкой и объектом, но удаляется объект только в том случае, если на него никто больше не ссылается.
