PHP: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) |
Artem (обсуждение | вклад) (→7.3) |
||
Строка 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
- http://php.net/manual/ru/migration53.php
- namespaces - http://php.net/manual/ru/language.namespaces.php
- closures - http://php.net/manual/ru/functions.anonymous.php
5.4
- http://php.net/manual/ru/migration54.new-features.php
- traits - http://php.net/manual/ru/language.oop5.traits.php
- short array syntax
5.5
- http://php.net/manual/ru/migration55.php
- finally - http://php.net/manual/ru/language.exceptions.php
- generators - http://php.net/manual/ru/language.generators.php
5.6
- http://php.net/manual/ru/migration56.new-features.php
- variadic functions
- argument unpacking
7.0
- http://php.net/manual/ru/migration70.php
- return types
- scalar typehints
7.1
- http://php.net/manual/ru/migration71.php
- const visibility
- nullables
- multiple exceptions
7.2
- http://php.net/manual/ru/migration72.php
- objects type hint
- abstract function override
7.3
- http://php.net/manual/ru/migration73.php
- references in list assignments
История изменений
Паттерны
- 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
- null
Магические методы
- __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