Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Конструкції мови

Читайте также:
  1. Вставлені конструкції
  2. Дослідження рівноваги складеної конструкції
  3. Дотримання вимог пожежної безпеки під час проектування, будівництва та реконструкції об’єктів виробничого та іншого призначення
  4. Захисні елементи юридичної конструкції податку
  5. Конструкції акредитива
  6. Конструкції акредитива
  7. Маркетинговий аналіз при реконструкції діючого підприємства
  8. Організаційні елементи юридичної конструкції податку
  9. Таким чином, ергономічні параметри робочого місця відповідають вимогам до їх організації та конструкції та забезпечують підтримання оптимальної робочої пози.

Оператори в сенсі мови дозволяють виконувати відповідну дію над одним чи кількома операндами.
Оператори бувають трьох типів — унарні, бінарні та тернарні. Оператори, як і в інших мовах характеризуються не лише дією, а й асоціативністю та пріоритетністю. Особливістю булевих операцій порівняння — розрізнення двох класів — з врахуванням типу і без врахування типу, при якому відбувається приведення до відповідного типу. Округлення відбуваються завжди в меншу сторону. В мові реалізовані особливі класи операторів — виконання, управління помилками та перевірки приналежності до класу.

Функції в сенсі мови є контейнерами коду, причому можливе включення інших функцій та класів. На цьому і базується можливість умовного визначення функції. В цьому випадку висувається вимога попередньої декларації викликаної функції, що не обов'язкове в інших випадках. Можливості перевизначення чи деактивації функції не існує. Результат, який повертає функція може мати будь-який тип.

В мові реалізована функціональність посилань. Можливо створити скільки завгодно псевдонімів, що посилаються на єдиний сегмент даних. При вивільненні будь-якого з псевдонімів, сегмент даних залишається в пам'яті до моменту завершення сценарію або вивільнення усіх посилань.

Що стосується функцій в PHP, то замість прийнятого в багатьох мовах принципу перевантаження функцій, що дозволяє змінити хід виконання певної функції в залежності від типу та кількості переданих параметрів, використовується метод динамічних аргументів. Це дає змогу не визначати кількість параметрів для функцій при їх оголошенні, а працювати із тими аргументами, які були отримані на момент виклику функції. У тілі функції можливо отримати кількість переданих їй аргументів і проводити відповідні маніпуляції. При оголошенні функції звичайним чином, можливе задання значень аргументів за замовчуванням. Функції можуть повертати лише одне значення, проте це обмеження можна оминути, використавши не лише масиви, а й посилання. Передача аргументів за посиланням неможлива під час виконання та оголошення функції.

Після виконання сценаріїв, простір пам'яті, займаної ними очищується збирачем сміття. Проте, за необхідності можливе виконання очищення пам'яті від надлишкових сегментів даних під час виконання скриптів. Використання функцій очищення пам'яті є невиправданим, хоча така можливість існує.

Для побудови програмних комплексів можна використовувати модульний підхід, виконуючи розділення різнорідного коду. При потребі, можливе виконання під'єднання необхідних модулів, причому операція виконання може бути і умовною. Під'єднані до скрипта файли можуть повертати значення.

Є негласна угода відповідно, з яким імена констант записують прописними буквами латинського алфавіту, наприклад, NAME, TEXT, VALUE. Якщо його дотримуватися, то це значно полегшить життя при розробці програм. Константам не можна давати імена, які є ключовими словами PHP (наприклад, імена операторів).

В PHP є безліч вбудованих констант, які можна використовувати. Наприклад, __FILE__ (два знака підкреслення до і два знаки підкреслення після) - містить ім'я програми, яка виконується в даний момент; PHP_VERSION - версія PHP.

PHP-скрипти зазвичай обробляються інтерпретатором в порядку, що забезпечує кросплатформеність розробленого додатка:

1. Лексичний аналіз вихідного коду і генерація лексем;

2. Синтаксичний аналіз отриманих лексем;

3. Генерація байт-коду;

4. Виконання байт-коду інтерпретатором (без створення виконуваного файлу).

Для збільшення швидкодії додатків можливе використання спеціального програмного забезпечення, так званих акселераторів. Принцип їх роботи полягає в кешуванні одного разу згенерованого байт-коду в пам'яті і/або на диску, таким чином, з процесу роботи додатка виключаються етапи 1-3, що в загальному випадку веде до значного прискорення роботи.

Важливою особливістю є те, що розробнику немає необхідності піклуватися про розподіл і звільнення пам'яті. Ядро PHP реалізує засоби для автоматичного керування пам'яттю; вся виділена пам'ять повертається системі після завершення роботи скрипта.


Розширення

Інтерпретатор складається з ядра і модулів, "розширень", що представляють собою динамічні бібліотеки. Розширення дозволяють доповнити базові можливості мови, надаючи можливості для роботи з базами даних, сокетами, динамічною графікою, криптографічними бібліотеками, документами формату PDF і тому подібним. Будь-який бажаючий може розробити своє власне розширення і підключити його. Існує величезна кількість розширень, як стандартних, так і створених сторонніми компаніями і ентузіастами, проте в стандартне постачання входить лише декілька десятків добре зарекомендували себе. Безліч розширень доступно в репозиторії PECL.


Параметри настройки

Інтерпретатор PHP має спеціальний конфігураційний файл - php.ini, що містить безліч налаштувань, зміна яких впливає на поведінку інтерпретатора.Є можливість відключити використання ряду функцій, змінити обмеження на використовувану скриптом оперативну пам'ять, час виконання, обсяг завантажуваних файлів, налаштувати журналирование помилок, роботу з сесіями і поштовими сервісами, підключити додаткові розширення, а також багато іншого. Під час виконання скрипта ці параметри можуть бути змінені командою ini_set.


Режими інтерпретатора

Існує кілька способів використання інтерпретатора PHP:

1. В якості модуля до веб-серверу за допомогою SAPI або ISAPI (наприклад, для Apache модуль mod_php). Веб-сервер запускається із завантаженим модулем і при зверненні до php-скрипту він виконується в оточенні процесу веб-сервера. Це найбільш поширений метод використання PHP в силу більш простої конфігурації.

2. В якості CGI. У цьому випадку, при виклику скрипта веб-сервер викликає / usr / bin / php-cgi / path / to / script.php. При цьому створюється новий процес і скрипт виконується в оточенні php-cgi, яке, в залежності від налаштувань, може сильно відрізнятися від оточення процесу веб-сервера. Більш сучасними варіантами є FastCGI і SCGI. На відміну від постійного виклику інтерпретатора як в CGI, у FastCGI / SCGI інтерпретатор PHP перезапускається не при кожному запиті, а тільки якщо всі поточні FastCGI-процеси вже в роботі, які звільнившись також не завершаться, а будуть чекати нових завдань. Однак ці процеси опитуються один раз в певний Scan-інтервал, згідно налаштуванням. Процеси, що перевищили час життя, час простою або відпрацювали задану кількість запитів, будуть завершуватися примусово, якщо їх кількість не нижче мінімально зазначеного для класу (віртхоста).

3. В якості скрипта командного рядка, що є виконуваним файлом, який викликається користувачем з командного рядка; скрипт виконується в оточенні викликав користувача. У цьому випадку можливе використання PHP для створення клієнтських GUI-додатків і вирішення адміністративних завдань в операційних системах UNIX, Linux, Microsoft Windows, Mac OS X і AmigaOS. Однак, в такій якості він не набув поширення, віддаючи пальму першості Perl, Python і VBScript




Дата добавления: 2014-12-19; просмотров: 36 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав