PHP: различия между версиями

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
Строка 40: Строка 40:
* http://php.net/manual/ru/migration73.php
* http://php.net/manual/ru/migration73.php
* references in list assignments
* references in list assignments
= История изменений =
** [https://www.php.net/releases/8.0/ru.php 8.0]
** [https://www.php.net/releases/8.1/ru.php 8.1]
** [https://www.php.net/releases/8.2/ru.php 8.2]
** [https://www.php.net/releases/8.3/ru.php 8.3]
= Паттерны =
* https://designpatternsphp.readthedocs.io/en/latest/README.html
* https://refactoring.guru/ru/design-patterns
* https://www.php.net/spl
= Типы данных =
** null
*** Скалярные:
*** bool
*** int
*** float
*** string
** array
** object
** resource
** never
** void
** self, parent, static
** true, false
= Магические методы =
** '''__construct(mixed ...$values = ""): void''' - конструктор, вызывается при new ClassName($param1, $param2, $param3)
** '''__destruct()''' - деструктор - вызывается при уничтожении объекта
** '''__call(string $name, array $arguments): mixed''' - вызывается при вызове метода с параметрами
** '''__callStatic(string $name, array $arguments): mixed''' - вызывается при вызове статического метода с параметрами
** '''__get(string $name): mixed''' - будет выполнен при чтении данных из недоступных (защищённых или приватных) или несуществующих свойств.
** '''__set(string $name, mixed $value): void''' - будет выполнен при записи данных в недоступные (защищённые или приватные) или несуществующие свойства.
** '''__isset(string $name): bool''' - будет выполнен при использовании isset() или empty() на недоступных (защищённых или приватных) или несуществующих свойствах.
** '''__unset(string $name): void''' - будет выполнен при вызове unset() на недоступном (защищённом или приватном) или несуществующем свойстве.
** '''__sleep(): array''' - Если метод определили, он выполняется перед сериализацией. Метод может очистить объект и должен вернуть массив с именами всех переменных этого объекта, которые должны быть сериализованы. Если метод ничего не возвращает, то сериализуется константа null и выдаётся предупреждение E_NOTICE.
** '''__wakeup(): void''' - восстановить соединения с базой данных, которые могли потеряться во время сериализации, и выполнить другие задачи повторной инициализации.
** '''__serialize(): array''' - Если метод определили, функция выполняется перед сериализацией. Метод должен создать и вернуть ассоциативный массив пар ключ и значение, которые представляют сериализованную форму объекта.
** '''__unserialize(array $data): void''' - Если метод определили, PHP передаст методу массив, который восстановил и вернул метод __serialize(). Затем, если нужно, метод восстанавливает свойства объекта из этого массива.
** '''__toString(): string''' - разрешает классу выбирать, как класс будет реагировать, когда с ним обращаются как со строкой.
** '''__invoke( ...$values): mixed''' - вызывается, когда скрипт пытается выполнить объект как функцию.
** '''__set_state(array $properties): object''' - Этот статический метод вызывается для тех классов, которые экспортируются функцией var_export().
** '''__clone(): void''' - После завершения клонирования, если метод __clone() определён, то будет вызван метод __clone() вновь созданного объекта для возможного изменения всех необходимых свойств.
** '''__debugInfo(): array''' - Этот метод вызывается функцией var_dump(), когда необходимо вывести список свойств объекта. Если этот метод не определили, выводится каждое свойство объекта c модификаторами public, protected и private
= Суперглобальные переменные =
** '''$GLOBALS''' - Ссылается на переменные глобальной области видимости
** '''$_SERVER''' - это массив (array), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных
** '''$_GET''' - Ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса).
** '''$_POST''' - Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.
** '''$_FILES''' - Ассоциативный массив элементов, загруженных в текущий скрипт через метод HTTP POST.
** '''$_COOKIE''' - Ассоциативный массив значений, переданных скрипту через HTTP Cookies.
** '''$_SESSION''' - Ассоциативный массив, содержащий переменные сессии, которые доступны для текущего скрипта.
** '''$_REQUEST''' - Ассоциативный массив, который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.
** '''$_ENV''' - Ассоциативный массив значений, переданных скрипту через переменные окружения.


= Установка =
= Установка =

Версия от 05:24, 3 ноября 2024

Общие сведения

История

5.3

5.4

5.5

5.6

7.0

7.1

7.2

7.3

История изменений

Паттерны

Типы данных

    • null
      • Скалярные:
      • bool
      • int
      • float
      • string
    • array
    • object
    • resource
    • never
    • void
    • self, parent, static
    • true, false

Магические методы

    • __construct(mixed ...$values = ""): void - конструктор, вызывается при new ClassName($param1, $param2, $param3)
    • __destruct() - деструктор - вызывается при уничтожении объекта
    • __call(string $name, array $arguments): mixed - вызывается при вызове метода с параметрами
    • __callStatic(string $name, array $arguments): mixed - вызывается при вызове статического метода с параметрами
    • __get(string $name): mixed - будет выполнен при чтении данных из недоступных (защищённых или приватных) или несуществующих свойств.
    • __set(string $name, mixed $value): void - будет выполнен при записи данных в недоступные (защищённые или приватные) или несуществующие свойства.
    • __isset(string $name): bool - будет выполнен при использовании isset() или empty() на недоступных (защищённых или приватных) или несуществующих свойствах.
    • __unset(string $name): void - будет выполнен при вызове unset() на недоступном (защищённом или приватном) или несуществующем свойстве.
    • __sleep(): array - Если метод определили, он выполняется перед сериализацией. Метод может очистить объект и должен вернуть массив с именами всех переменных этого объекта, которые должны быть сериализованы. Если метод ничего не возвращает, то сериализуется константа null и выдаётся предупреждение E_NOTICE.
    • __wakeup(): void - восстановить соединения с базой данных, которые могли потеряться во время сериализации, и выполнить другие задачи повторной инициализации.
    • __serialize(): array - Если метод определили, функция выполняется перед сериализацией. Метод должен создать и вернуть ассоциативный массив пар ключ и значение, которые представляют сериализованную форму объекта.
    • __unserialize(array $data): void - Если метод определили, PHP передаст методу массив, который восстановил и вернул метод __serialize(). Затем, если нужно, метод восстанавливает свойства объекта из этого массива.
    • __toString(): string - разрешает классу выбирать, как класс будет реагировать, когда с ним обращаются как со строкой.
    • __invoke( ...$values): mixed - вызывается, когда скрипт пытается выполнить объект как функцию.
    • __set_state(array $properties): object - Этот статический метод вызывается для тех классов, которые экспортируются функцией var_export().
    • __clone(): void - После завершения клонирования, если метод __clone() определён, то будет вызван метод __clone() вновь созданного объекта для возможного изменения всех необходимых свойств.
    • __debugInfo(): array - Этот метод вызывается функцией var_dump(), когда необходимо вывести список свойств объекта. Если этот метод не определили, выводится каждое свойство объекта c модификаторами public, protected и private

Суперглобальные переменные

    • $GLOBALS - Ссылается на переменные глобальной области видимости
    • $_SERVER - это массив (array), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных
    • $_GET - Ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса).
    • $_POST - Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.
    • $_FILES - Ассоциативный массив элементов, загруженных в текущий скрипт через метод HTTP POST.
    • $_COOKIE - Ассоциативный массив значений, переданных скрипту через HTTP Cookies.
    • $_SESSION - Ассоциативный массив, содержащий переменные сессии, которые доступны для текущего скрипта.
    • $_REQUEST - Ассоциативный массив, который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.
    • $_ENV - Ассоциативный массив значений, переданных скрипту через переменные окружения.

Установка

Синтаксис

ООП

IDE

Отладка

Организация кода

Библиотеки

CMS

  • Drupal
  • Joomla
  • Livestreet

Фреймворки

  • Symfony
  • Laravel
  • Zend Framework
  • Yii
  • CodeIgniter
  • Nette Framework
  • CakePHP
  • Slim

Ссылки и доп. информация