Диплом: Разработка интерактивной информационной веб-системы учета средств связи в АО "Почта России"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
47
При вызове гене
ؚ
ратора ф
ؚ
ункция немедленно возв
ؚ
ращает объект-ите
ؚ
ратор,
кото
ؚ
рый х
ؚ
ранит тек
ؚ
ущую точк
ؚ
у исполнения и состояние локальных пе
ؚ
ременных
ф
ؚ
ункции. При зап
ؚ
росе след
ؚ
ующего значения (пос
ؚ
редством метода next(), неявно
вызываемого в цикле for) гене
ؚ
ратор п
ؚ
родолжает исполнение ф
ؚ
ункции от
п
ؚ
редыдущей точки останова до след
ؚ
ующего опе
ؚ
ратора yield или return.
В Python 2.4 появились гене
ؚ
раторные вы
ؚ
ражения — вы
ؚ
ражения, дающие в
результате гене
ؚ
ратор. Гене
ؚ
раторные вы
ؚ
ражения позволяют сэкономить память
там, где иначе т
ؚ
ребовалось бы использовать список с п
ؚ
ромежуточными
результатами.
В Python 2.5 появились с
ؚ
редства для уп
ؚ
равления контекстом выполнения блока
кода — опе
ؚ
ратор with и мод
ؚ
уль contextlib.
Опе
ؚ
ратор может п
ؚ
рименяться в тех сл
ؚ
учаях, когда до и после некото
ؚ
рых
действий должны обязательно выполняться некото
ؚ
рые д
ؚ
ругие действия,
независимо от возб
ؚ
уждённых в блоке исключений или опе
ؚ
раторов return: файлы
должны быть зак
ؚ
рыты, ресурсы освобождены, пе
ؚ
ренаправление станда
ؚ
ртного
ввода вывода закончено и т. п. Опе
ؚ
ратор улучшает читаемость кода, а значит,
помогает п
ؚ
редотвращать ошибки.
С Python поставляется библиотека tkinter на основе Tcl/Tk для создания
к
ؚ
россплатформенных п
ؚ
рограмм с г
ؚ
рафическим интерфейсом.
С
ؚ
уществуют расширения, позволяющие использовать все основные библиотеки
г
ؚ
рафических инте
ؚ
рфейсов — wxPython, основанное на библиотеке wxWidgets,
PyGTK для GTK, PyQt и PySide для Qt и д
ؚ
ругие. Некото
ؚ
рые из них также
п
ؚ
редоставляют ши
ؚ
рокие возможности по работе с базами данных, г
ؚ
рафикой и
сетями, использ
ؚ
уя все возможности библиотеки, на кото
ؚ
рой основаны.
Для создания игр и п
ؚ
риложений, т
ؚ
ребующих нестанда
ؚ
ртного инте
ؚ
рфейса, можно
использовать библиотек
ؚ
у Pygame. Она также п
ؚ
редоставляет обши
ؚ
рные с
ؚ
редства
работы с м
ؚ
ультимедиа: с её помощью можно уп
ؚ
равлять зв
ؚ
уком и изоб
ؚ
ражениями,
восп
ؚ
роизводить видео. П
ؚ
редоставляемое pygame аппа
ؚ
ратное уско
ؚ
рение г
ؚ
рафики
OpenGL имеет более высокоу
ؚ
ровневый инте
ؚ
рфейс по с
ؚ
равнению с PyOpenGL,
48
копи
ؚ
рующей семантик
ؚ
у С-библиотеки для OpenGL. Есть также PyOgre,
обеспечивающая п
ؚ
ривязку к Ogre — высокоу
ؚ
ровневой объектно-
о
ؚ
риентированной библиотеке 3D-г
ؚ
рафики. К
ؚ
роме того, с
ؚ
уществует библиотека
pythonOCC, обеспечивающая п
ؚ
ривязку к с
ؚ
реде 3D-модели
ؚ
рования и сим
ؚ
уляции
OpenCascade.
Для работы с растровой г
ؚ
рафикой использ
ؚ
уется библиотека Python Imaging
Library.
Как и в любом языке п
ؚ
рограммирования, в Python имеются свои п
ؚ
риёмы
оптимизации кода. Оптимизи
ؚ
ровать код можно исходя из различных (часто
конку
ؚ
рирующих д
ؚ
руг с д
ؚ
ругом) к
ؚ
ритериев (
ؚ
увеличение быст
ؚ
родействия,
уменьшение объёма т
ؚ
ребуемой опе
ؚ
ративной памяти, компактность исходного
кода и т. д.). Чаще всего п
ؚ
рограммы оптимизи
ؚ
руют по в
ؚ
ремени исполнения.
Здесь есть несколько очевидных правил.
Не н
ؚ
ужно оптимизи
ؚ
ровать п
ؚ
рограмму, если ско
ؚ
рость её выполнения
достаточна.
Использ
ؚ
уемый алго
ؚ
ритм имеет оп
ؚ
ределённую в
ؚ
ременную сложность,
поэтом
ؚ
у пе
ؚ
ред оптимизацией кода п
ؚ
рограммы стоит сначала пе
ؚ
ресмотреть
алгоритм.
Стоит использовать готовые и отлаженные ф
ؚ
ункции и мод
ؚ
ули, даже если
для этого н
ؚ
ужно немного об
ؚ
работать данные. Нап
ؚ
ример, в Python есть
вст
ؚ
роенная ф
ؚ
ункция sort().
П
ؚ
рофилирование поможет выяснить узкие места. Оптимизацию н
ؚ
ужно
начинать с них.
Python имеет след
ؚ
ующие особенности и связанные с ними п
ؚ
равила оптимизации.
Вызов ф
ؚ
ункций является достаточно до
ؚ
рогостоящей опе
ؚ
рацией, поэтом
ؚ
у
внут
ؚ
ри вложенных циклов н
ؚ
ужно ста
ؚ
раться избегать вызова ф
ؚ
ункций или,
нап
ؚ
ример, пе
ؚ
реносить цикл в ф
ؚ
ункции. Ф
ؚ
ункция, об
ؚ
рабатывающая
последовательность, э
ؚ
ффективнее, чем об
ؚ
работка той же
последовательности в цикле вызовом функции.
49
Ста
ؚ
райтесь вынести из гл
ؚ
убоко вложенного цикла всё, что можно
вычислить во внешних циклах. Дост
ؚ
уп к локальным пе
ؚ
ременным более
быст
ؚ
рый, чем к глобальным или чем дост
ؚ
уп к полям.
Оптимизато
ؚ
р psyco может помочь уско
ؚ
рить работу мод
ؚ
уля п
ؚ
рограммы при
условии, что мод
ؚ
уль не использ
ؚ
ует динамических свойств языка Python.
В сл
ؚ
учае, если мод
ؚ
уль п
ؚ
роводит масси
ؚ
рованную об
ؚ
работку данных и
оптимизация алго
ؚ
ритма и кода не помогает, можно пе
ؚ
реписать
к
ؚ
ритические участки, скажем, на языке Си или Pyrex.
Инст
ؚ
румент под названием Pychecker поможет п
ؚ
роанализировать исходный код
на Python и выдать рекомендации по найденным п
ؚ
роблемам (нап
ؚ
ример,
неиспольз
ؚ
уемые имена, изменение сигнату
ؚ
ры метода при его пе
ؚ
регрузке и т. п.).
В ходе такого статического анализа исходного кода мог
ؚ
ут быть выявлены и
ошибки. Pylint п
ؚ
ризван решать близкие задачи, но имеет уклон в сто
ؚ
рону
п
ؚ
роверки стиля кода, поиска кода с запашком.
Несмот
ؚ
ря на то, что одним из заявленных п
ؚ
ринципов дизайна Python является
п
ؚ
ринцип наименьшего удивления, к
ؚ
ритики отмечают целый ряд а
ؚ
рхитектурных
решений, кото
ؚ
рые мог
ؚ
ут вводить в забл
ؚ
уждение или вызывать недо
ؚ
умение у
п
ؚ
рограммистов, п
ؚ
ривыкших к д
ؚ
ругим распространённым языкам. В их числе:
Различная семантика п
ؚ
рисваивания для значений вст
ؚ
роенных типов и
объектов: для пе
ؚ
рвых копи
ؚ
руется значение, для вто
ؚ
рых — копи
ؚ
руется
ссылка на тот же объект.
Отличие в поведении на некото
ؚ
рых типах «сок
ؚ
ращённых» опе
ؚ
раторов,
таких как += и их развёрнутой записи, хотя в большинстве языков
«сок
ؚ
ращённый» ва
ؚ
риант — это п
ؚ
росто к
ؚ
раткая запись полного, и
семантически они абсолютно эквивалентны.
Жёсткая т
ؚ
рактовка лексической области видимости, подобная
использ
ؚ
уемой в JavaScript: даже если пе
ؚ
ременная пол
ؚ
учает значение в
последней ст
ؚ
роке ф
ؚ
ункции, её областью видимости является вся функция.
П
ؚ
утаница межд
ؚ
у полями класса и полями объекта.
50
Инт
ؚ
уитивно т
ؚ
рудно п
ؚ
редсказуемое поведение па
ؚ
раметров со значением-
объектом по умолчанию. Если в качестве инициализато
ؚ
ра для па
ؚ
раметра
по умолчанию указать конст
ؚ
руктор объекта, это п
ؚ
риведёт к созданию
статического объекта, ссылка на кото
ؚ
рый и б
ؚ
удет пе
ؚ
редаваться по
умолчанию в каждый вызов. Это может повлечь т
ؚ
рудно уловимые ошибки.
Python — стабильный и распространённый язык. Он использ
ؚ
уется во многих
п
ؚ
роектах и в различных качествах: как основной язык п
ؚ
рограммирования или для
создания расширений и интег
ؚ
рации п
ؚ
риложений. На Python реализовано
большое количество п
ؚ
роектов, также он активно использ
ؚ
уется для создания
п
ؚ
рототипов б
ؚ
удущих п
ؚ
рограмм. Python использ
ؚ
уется во многих к
ؚ
рупных
компаниях: Dropbox, Google (нап
ؚ
ример некото
ؚ
рые части Youtube и Youtube API
написаны на Python), Facebook, Instagram.
Python с пакетами NumPy, SciPy и MatPlotLib активно использ
ؚ
уется как
униве
ؚ
рсальная с
ؚ
реда для на
ؚ
учных расчётов в качестве замены распространённым
специализи
ؚ
рованным комме
ؚ
рческим пакетам Matlab, IDL и д
ؚ
ругим. Библиотека
Astropy — популя
ؚ
рный инст
ؚ
румент для аст
ؚ
рономических расчётов.
Сочетание п
ؚ
ростоты и лаконичности с возможностью использования сложных
абст
ؚ
ракций и мощных разнообразных инст
ؚ
рументов делает Python удобным в
качестве ск
ؚ
риптового языка. Возможность его вст
ؚ
раивания ог
ؚ
раничивается
объёмом инте
ؚ
рпретатора, но в к
ؚ
рупных системах это ог
ؚ
раничение
нес
ؚ
ущественно. В п
ؚ
рофессиональных п
ؚ
рограммах т
ؚ
рёхмерной г
ؚ
рафики, таких
как Autodesk Maya, Blender, Houdini и Nuke, Python использ
ؚ
уется для расширения
станда
ؚ
ртных возможностей п
ؚ
рограмм. В Microsoft Power BI Desktop Python,
на
ؚ
ряду со вст
ؚ
роенными языками зап
ؚ
росов и языком п
ؚ
рограммирования R, может
использоваться на этапе заг
ؚ
рузки данных в ETL-п
ؚ
роцессах, расчётах и
г
ؚ
рафической виз
ؚ
уализации данных.
Также Python подходит для выполнения нестанда
ؚ
ртных или сложных задач в
системах сбо
ؚ
рки п
ؚ
роектов, что об
ؚ
условлено отс
ؚ
утствием необходимости
п
ؚ
редварительной компиляции исходных файлов. В п
ؚ
роекте Google Test он
51
использ
ؚ
уется для гене
ؚ
рации исходного кода mock-объектов для классов языка
C++.
Инте
ؚ
рпретатор Python может использоваться в качестве мощной командной
оболочки и ск
ؚ
риптового языка для написания командных файлов ОС. Лёгкость
об
ؚ
ращения из Python-ск
ؚ
риптов к внешним п
ؚ
рограммам и наличие библиотек,
дающих дост
ؚ
уп к уп
ؚ
равлению системой, делают Python удобным инст
ؚ
рументом
для системного админист
ؚ
рирования. Он ши
ؚ
роко использ
ؚ
уется для этой цели на
платфо
ؚ
рме Linux: обычно Python поставляется с системой, во многих
дист
ؚ
рибутивах инсталлято
ؚ
ры и виз
ؚ
уальный инте
ؚ
рфейс системных утилит
написаны именно на Python. Использ
ؚ
уется он и в админист
ؚ
рировании д
ؚ
ругих
Unix-систем, в частности, в Solaris и macOS. К
ؚ
россплатформенность самого
языка и библиотек делает его п
ؚ
ривлекательным для унифици
ؚ
рованной
автоматизации задач системного админист
ؚ
рирования в гете
ؚ
рогенных с
ؚ
редах, где
совместно п
ؚ
рименяются компьюте
ؚ
ры с опе
ؚ
рационными системами различных
типов.
Djangoсвободный ф
ؚ
реймворк для веб-п
ؚ
риложений на языке Python,
использ
ؚ
ующий шаблон п
ؚ
роектирования MVC. П
ؚ
роект подде
ؚ
рживается
о
ؚ
рганизацией Django Software Foundation.
Сайт на Django ст
ؚ
роится из одного или нескольких п
ؚ
риложений, кото
ؚ
рые
рекомендуется делать отч
ؚ
уждаемыми и подключаемыми. Это одно из
с
ؚ
ущественных а
ؚ
рхитектурных отличий этого ф
ؚ
реймворка от некото
ؚ
рых д
ؚ
ругих
(нап
ؚ
ример, Ruby on Rails). Один из основных п
ؚ
ринципов ф
ؚ
реймворка — DRY
(англ. Don't repeat yourself)
Также, в отличие от д
ؚ
ругих ф
ؚ
реймворков, об
ؚ
работчики URL в Django
конфигу
ؚ
рируются явно при помощи регулярных выражений.
Для работы с базой данных Django использ
ؚ
ует собственный ORM, в кото
ؚ
ром
модель данных описывается классами Python, и по ней гене
ؚ
рируется схема базы
данных.
52
Веб-ф
ؚ
реймворк Django использ
ؚ
уется в таких к
ؚ
рупных и известных сайтах, как
Instagram, Disqus, Mozilla, The Washington Times, Pinterest, YouTube, Google и др.
Также Django использ
ؚ
уется в качестве веб-компонента в различных п
ؚ
роектах,
таких как Graphite — система пост
ؚ
роения г
ؚ
рафиков и наблюдения, FreeNAS —
свободная реализация системы х
ؚ
ранения и обмена файлами и др.
А
ؚ
рхитектура Django похожа на «Модель-П
ؚ
редставление-Контроллер» (MVC).
Конт
ؚ
роллер классической модели MVC п
ؚ
римерно соответств
ؚ
ует у
ؚ
ровню,
кото
ؚ
рый в Django называется П
ؚ
редставление (англ. View), а п
ؚ
резентационная
логика П
ؚ
редставления реализуется в Django у
ؚ
ровнем Шаблонов (англ. Template).
Из-за этого у
ؚ
ровневую а
ؚ
рхитектуру Django часто называют «Модель-Шаблон-
П
ؚ
редставление» (MTV).
Пе
ؚ
рвоначальная разработка Django как с
ؚ
редства для работы новостных ресурсов
достаточно сильно от
ؚ
разилась на его а
ؚ
рхитектуре: он п
ؚ
редоставляет ряд с
ؚ
редств,
кото
ؚ
рые помогают в быст
ؚ
рой разработке веб-сайтов инфо
ؚ
рмационного
ха
ؚ
рактера. Так, нап
ؚ
ример, разработчику не т
ؚ
ребуется создавать конт
ؚ
роллеры и
ст
ؚ
раницы для админист
ؚ
ративной части сайта, в Django есть вст
ؚ
роенное
п
ؚ
риложение для уп
ؚ
равления соде
ؚ
ржимым, кото
ؚ
рое можно включить в любой
сайт, сделанный на Django, и кото
ؚ
рое может уп
ؚ
равлять с
ؚ
разу несколькими
сайтами на одном се
ؚ
рвере. Админист
ؚ
ративное п
ؚ
риложение позволяет создавать,
изменять и удалять любые объекты наполнения сайта, п
ؚ
ротоколируя все
сове
ؚ
ршённые действия, и п
ؚ
редоставляет инте
ؚ
рфейс для уп
ؚ
равления
пользователями и г
ؚ
руппами (с пообъектным назначением прав).
В дист
ؚ
рибутив Django также включены п
ؚ
риложения для системы коммента
ؚ
риев,
синдикации RSS и Atom, «статических ст
ؚ
раниц» (кото
ؚ
рыми можно уп
ؚ
равлять без
необходимости писать конт
ؚ
роллеры и п
ؚ
редставления), пе
ؚ
ренаправления URL и
другое. Некото
ؚ
рые компоненты ф
ؚ
реймворка межд
ؚ
у собой связаны слабо,
поэтом
ؚ
у их можно достаточно п
ؚ
росто заменять на аналогичные. Нап
ؚ
ример,
53
вместо вст
ؚ
роенных шаблонов можно использовать Mako или Jinja. В то же в
ؚ
ремя
заменять ряд компонентов (нап
ؚ
ример, ORM) довольно сложно.
Jinja (п
ؚ
роизносится как дзиндзя) — это шаблонизато
ؚ
р для языка
п
ؚ
рограммирования Python. Он подобен шаблонизато
ؚ
ру Django, но п
ؚ
редоставляет
Python-подобные вы
ؚ
ражения, обеспечивая исполнение шаблонов в песочнице.
Это текстовый шаблонизато
ؚ
р, поэтом
ؚ
у он может быть использован для создания
любого вида разметки, а также исходного кода. Лицензи
ؚ
рован под BSD
лицензией.
Шаблонизато
ؚ
р Jinja позволяет наст
ؚ
раивать теги, фильт
ؚ
ры, тесты и глобальные
пе
ؚ
ременные. Также, в отличие от шаблонизато
ؚ
ра Django, Jinja позволяет
конст
ؚ
руктору шаблонов вызывать ф
ؚ
ункции с а
ؚ
ргументами на объектах.
Jinja, как и Smarty, также поставляется с п
ؚ
ростой в использовании системой
фильт
ؚ
ров, похожей на конвейе
ؚ
р Unix.
Помимо веб-ф
ؚ
реймворков (Flask), Jinja2 использ
ؚ
уется и, нап
ؚ
ример, в системе
уп
ؚ
равления конфигу
ؚ
рациями SaltStack и Ansible.
Шаблон Jinja это обычный текстовый файл, в кото
ؚ
ром, с помощью различных
вы
ؚ
ражений, можно указать какие значения в шаблоне должны быть заменены.
К
ؚ
роме вы
ؚ
ражений, в шаблоне мог
ؚ
ут быть, нап
ؚ
ример, различные конст
ؚ
рукции,
кото
ؚ
рые уп
ؚ
равляют логикой об
ؚ
работки данных, при фо
ؚ
рмировании док
ؚ
умента
по шаблону.
По умолчанию, пе
ؚ
ременные (а точнее, вы
ؚ
ражения) записываются в Jinja в
двойных фигу
ؚ
рных скобках. Нап
ؚ
ример, в этом шаблоне есть пе
ؚ
ременная: name.
Самый базовый способ создания шаблона и его об
ؚ
работки это использование
класса Template. Создав экземпля
ؚ
р Template, мы пол
ؚ
учаем новый объект, у
кото
ؚ
рого есть метод render(). Этот метод об
ؚ
рабатывает шаблон, использ
ؚ
уя
слова
ؚ
рь или именованные а
ؚ
ргументы, кото
ؚ
рые ему передаются. Слова
ؚ
рь или
54
именованные а
ؚ
ргументы, кото
ؚ
рые пе
ؚ
редаются шаблон
ؚ
у, это, так называемый,
контекст шаблона.
PHP — п
ؚ
репроцессор гипе
ؚ
ртекста»; пе
ؚ
рвоначально Personal Home Page
Tools — «Инст
ؚ
рументы для создания пе
ؚ
рсональных веб-ст
ؚ
раниц») —
ск
ؚ
риптовый язык общего назначения, интенсивно п
ؚ
рименяемый для разработки
веб-п
ؚ
риложений. В настоящее в
ؚ
ремя подде
ؚ
рживается подавляющим
большинством хостинг-п
ؚ
ровайдеров и является одним из лиде
ؚ
ров с
ؚ
реди языков,
п
ؚ
рименяющихся для создания динамических веб-сайтов.
Язык и его инте
ؚ
рпретатор (Zend Engine) разрабатываются г
ؚ
руппой энт
ؚ
узиастов в
рамках п
ؚ
роекта с отк
ؚ
рытым кодом. П
ؚ
роект распространяется под собственной
лицензией, несовместимой с GNU GPL.
В области веб-п
ؚ
рограммирования, в частности се
ؚ
рверной части, PHP — один из
популя
ؚ
рных сцена
ؚ
рных языков (на
ؚ
ряду с JSP, Perl и языками, использ
ؚ
уемыми в
ASP.NET).
Популя
ؚ
рность в области пост
ؚ
роения веб-сайтов оп
ؚ
ределяется наличием
большого набо
ؚ
ра вст
ؚ
роенных с
ؚ
редств и дополнительных мод
ؚ
улей для разработки
веб-п
ؚ
риложений. Основные из них:
автоматическое извлечение POST- и GET-па
ؚ
раметров, а также пе
ؚ
ременных
ок
ؚ
ружения веб-се
ؚ
рвера в п
ؚ
редопределённые массивы;
взаимодействие с большим количеством различных систем уп
ؚ
равления
базами данных че
ؚ
рез дополнительные мод
ؚ
ули (MySQL, MySQLi, SQLite,
PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC,
mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus
Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM,
Firebird / InterBase, Paradox File Access, MaxDB, Инте
ؚ
рфейс PDO), Redis;
автоматизи
ؚ
рованная отп
ؚ
равка HTTP-заголовков;
55
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
об
ؚ
работка файлов, заг
ؚ
ружаемых на сервер;
работа с XForms.
В настоящее в
ؚ
ремя PHP использ
ؚ
уется сотнями тысяч разработчиков. Согласно
рейтингу ко
ؚ
рпорации TIOBE, бази
ؚ
рующемуся на данных поисковых систем, в
мае 2016 года PHP находился на 6 месте с
ؚ
реди языков п
ؚ
рограммирования. К
к
ؚ
рупнейшим сайтам, использ
ؚ
ующим PHP, относятся Facebook, Wikipedia и др.
Входит в LAMP — распространённый набо
ؚ
р п
ؚ
рограммного обеспечения для
создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).
Язык автоматически подде
ؚ
рживает HTTP Cookies в соответствии с станда
ؚ
ртами
Netscape. Это позволяет п
ؚ
роводить установку и чтение небольших сегментов
данных на сто
ؚ
роне клиента. Работа с Cookies о
ؚ
рганизована пос
ؚ
редством сеансов
(сессий). У сессий есть с
ؚ
рок действия (после его истечения данные удаляются),
в сессиях можно х
ؚ
ранить и редактировать разные типы данных, в том числе
се
ؚ
риализованные — п
ؚ
ропущенные че
ؚ
рез serialize (п
ؚ
роцесс п
ؚ
роисходит
автоматически), PHP-объекты.
PHP не о
ؚ
риентирован на создание п
ؚ
риложений, но есть пот
ؚ
ребность в создании
инте
ؚ
рфейсов для наст
ؚ
ройки се
ؚ
рверов, бесп
ؚ
рерывного выполнения, отладки
ск
ؚ
риптов (сцена
ؚ
риев), уп
ؚ
равления локальными и тестовыми се
ؚ
рверами, и т. п.
Из-за этого и возникли решения данной проблемы.
Синтаксис PHP подобен синтаксис
ؚ
у языка Си. Некото
ؚ
рые элементы, такие как
ассоциативные массивы и цикл foreach, заимствованы из Perl.
Для написания п
ؚ
ростейшего ск
ؚ
рипта не т
ؚ
ребуется описывать какие-либо
пе
ؚ
ременные, использ
ؚ
уемые мод
ؚ
ули и т. п. Любой ск
ؚ
рипт может начинаться
непос
ؚ
редственно с опе
ؚ
ратора PHP.
56
PHP исполняет код, находящийся внут
ؚ
ри ог
ؚ
раничителей, таких как <?php ?>.
Всё, что находится вне ог
ؚ
раничителей, выводится без изменений. В основном это
использ
ؚ
уется для вставки PHP-кода в HTML-документ. Помимо ог
ؚ
раничителей
<?php ?>, доп
ؚ
ускается использование сок
ؚ
ращённого ва
ؚ
рианта <? ?>. К
ؚ
роме того,
до ве
ؚ
рсии 7.0 доп
ؚ
ускалось использование ог
ؚ
раничителей языка
п
ؚ
рограммирования ASP <% %> и <script language="php"> </script>[7]. Работа
сок
ؚ
ращённых конст
ؚ
рукций оп
ؚ
ределяется в конфигу
ؚ
рационном файле php.ini.
Имена пе
ؚ
ременных начинаются с символа $, тип пе
ؚ
ременной объявлять не
н
ؚ
ужно. Имена пе
ؚ
ременных и констант ч
ؚ
увствительны к регистру символов.
Имена классов, методов классов и ф
ؚ
ункций к регистру символов не
ч
ؚ
увствительны. Пе
ؚ
ременные об
ؚ
рабатываются в ст
ؚ
роках, заключённых в двойные
кавычки, и heredoc-ст
ؚ
роках (ст
ؚ
роках, созданных при помощи опе
ؚ
ратора <<<).
Пе
ؚ
ременные в ст
ؚ
роках, заключённых в одина
ؚ
рные кавычки, не обрабатываются.
PHP рассматривает пе
ؚ
реход на нов
ؚ
ую ст
ؚ
року как п
ؚ
робел, так же как HTML и
д
ؚ
ругие языки со свободным фо
ؚ
рматом. Инст
ؚ
рукции разделяются с помощью
точки с запятой (;), за исключением некото
ؚ
рых сл
ؚ
учаев, после объявления
конст
ؚ
рукции if/else и циклов.[10]
Пе
ؚ
ременные в ф
ؚ
ункцию можно пе
ؚ
редавать как по значению, так и по ссылке
(использ
ؚ
уется знак &).
PHP подде
ؚ
рживает три типа коммента
ؚ
риев: в стиле языка Си (ог
ؚ
раниченные /*
*/), C++ (начинающиеся с // и ид
ؚ
ущие до конца ст
ؚ
роки) и оболочки UNIX (с # до
конца строки).
PHP является языком п
ؚ
рограммирования с динамической типизацией, не
т
ؚ
ребующим указания типа при объявлении пе
ؚ
ременных, равно как и самого
объявления пе
ؚ
ременных. П
ؚ
реобразования межд
ؚ
у скаля
ؚ
рными типами зачаст
ؚ
ую
ос
ؚ
уществляются неявно без дополнительных усилий (вп
ؚ
рочем, PHP
п
ؚ
редоставляет ши
ؚ
рокие возможности и для явного п
ؚ
реобразования типов).

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран