Различия
Показаны различия между двумя версиями страницы.
— | klassy_i_obekty [2021/07/31 21:58] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Классы и объекты PHP ====== | ||
+ | После выхода PHP5 поддержка [[ООП]] в [[PHP|PHP]] стала практически полной. | ||
+ | * [[https:// | ||
+ | * [[Стандарты кодирования]]: | ||
+ | * [[Файл инициализации приложения]]. Автоматическая загрузка классов. | ||
+ | < | ||
+ | < | ||
+ | * Различия между передачей по ссылке объектов и обычных переменных в PHP версий 5.x.< | ||
+ | $var1 = 10; | ||
+ | // $var2 - копия текущего состояния переменной $var1 | ||
+ | $var2 = $var1; | ||
+ | // $var3 - жесткая ссылка на $var1, дальнейшее изменение значения одной из | ||
+ | // них отразится на значении второй | ||
+ | $var3 = &$var1; | ||
+ | |||
+ | $obj1 = new MyClass(); | ||
+ | $obj2 = clone $obj1; // $obj2 - копия текущего состояния $obj1 | ||
+ | $obj3 = $obj1; | ||
+ | </ | ||
+ | ====== $this, | ||
+ | * **$this** - это псевдопеременная, | ||
+ | * Ключевое слово **parent** используется для обращения только к родительским членам. Если дочерний класс замещает родительский метод, то родительскую версию можно вызвать только так. | ||
+ | * **Оператор области видимости (scope resolution) ::** (два двоеточия рядом) используется для доступа к статическим или переопределенным методам класса, | ||
+ | parent:: | ||
+ | </ | ||
+ | * Ключевое слово **self** - указатель на сам класс, в отличии от $this, который является указателем на объект класса. Методы класса не видят других членов класса. Для обращения к членам своего класса, | ||
+ | * Обращение к статическому методу или свойству в классе: | ||
+ | * Обращение к статическому методу или свойству из вне класса: | ||
+ | |||
+ | ====== Специальные методы класса ====== | ||
+ | * [[http:// | ||
+ | |||
+ | Специальные методы класса: | ||
+ | * Клонирование объектов в PHP 5 происходит при помощи ключевого слова clone. При клонировании конструктор НЕ вызывается, | ||
+ | |||
+ | |||
+ | |||
+ | ====== Функции для работы с методами и классами ====== | ||
+ | * [[http:// | ||
+ | $class_methods = get_class_methods(new MyClass()); | ||
+ | print_r($class_methods); | ||
+ | </ | ||
+ | |||
+ | ====== Примеры ====== | ||
+ | * **Счетчик объектов**< | ||
+ | <?php | ||
+ | |||
+ | error_reporting(E_ALL & ~E_NOTICE); | ||
+ | |||
+ | class counter { | ||
+ | |||
+ | public static $count = 0; | ||
+ | |||
+ | public function __construct() { | ||
+ | self:: | ||
+ | } | ||
+ | |||
+ | public function __destruct() { | ||
+ | self:: | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | $obj = new counter(); | ||
+ | echo counter:: | ||
+ | |||
+ | for ($i = 0; $i < 3; $i++) { | ||
+ | $arr[] = new counter(); | ||
+ | echo counter:: | ||
+ | } | ||
+ | |||
+ | unset($arr); | ||
+ | echo counter:: | ||
+ | ?> | ||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга