php

#10. 3 php Генерация пользовательских ошибок. Функции trigger_error() и errror_log()

Вывод сообщения об ошибке в окно браузера (trigger_error())

Сгенерировать ошибку и вывести сообщение о ней в окно браузера можно с помощью функции

bool trigger_error(string $error_msg, int $error_type = E_USER_NOTICE)

Первым аргументом является текст сообщения об ошибке, а вторым — её тип. Данная функция позволяет сгенерировать ошибки только пользовательских типов:

#10. 2 php Перехват ошибок. Регистрация пользовательского обработчика ошибок set_error_handler()

Регистрация нового обработчика ошибок

Функция

string set_error_handler(string $funcName [, int $errorTypes])

позволяет зарегистрировать собственный обработчик ошибок, который будет вызван вместо стандартного обработчика в случае возникновения ошибок заданных в параметре $errorTypes типов (по умолчанию E_ALL).

#10. 1 php Типы ошибок. Параметры контроля и протоколирования ошибок (error_reporting, display_errors, log_errors, error_log)

Классификация ошибок

По степени "серьезности":

  • фатальные, то есть такие, автоматическое восстановление после которых невозможно. Сюда относится, например, обращение к несуществующему файлу. Если работа программы должна быть продолжена, то ситуация возникновения такой ошибки должна быть обработана программистом, то есть должен быть написан код восстановления, явно указывающий, что делать дальше в таком случае. Для перехвата фатальных ошибок, начиная с PHP7, используется механизм исключений (exceptions), описанный далее в этой главе.

#9.3 php Вложенные пространства имен. Импортирование элементов (use) и задание псевдонимов

Вложенные пространства имен

Используя слеши (\), пространство имен можно определить с произвольным количеством вложенных подпространств на различных уровнях вложенности. Например,

#9.2 php Использование пространств имен. Абсолютные и относительные имена

Квалифицированное имя элемента (функции, класса и т.д) пространства имен состоит из префикса, определяющего пространство имен, слеша (\) и имени элемента:

namespace\element_name

Для обращения к любым элементам некоторого пространства имен всегда может использоваться его квалифицированное имя, начинающееся с ведущего слеша (\). Такое имя называется абсолютным. Например, абсолютное имя функции speak() пространства cat:

#9.1 php Пространства имен (namespace). Объявление нового пространства имен. Что это такое?

Объявление нового пространства имен

Для объявления нового пространства имен (доступно, начиная с PHP 5.3) используется ключевое слово namespace, после которого следует имя пространства

#7.20 php trait ООП Трейты (Примеси). Оператор разрешения конфликтов имен в трейтах insteadof

Как и интерфейсы, трейты компенсируют недостотатки отсутствия множественного наследования классов в PHP. Обычно они содержат общие фрагменты кода для классов — например, реализующих одни и те же интерфейсы похожим или одинаковым образом.

Трейты объявляются при помощи ключевого слова trait, после которого следует имя трейта и его содержимое в фигурных скобках:

#7.21 php ООП Оператор проверки типа instanceof

Оператор проверки типа проверяет соместимость класса объекта, стоящего слева от instanceof с классом или интерфейсом, стоящим справа:

$Obj instanceof Class

В самом простом случае оператор instanceof позволяет проверить, является ли объект экземпляром некоторого класса, например,

<?php
class A
{
}

class B
{
}

$a = new A;
var_dump($a instanceof A);
var_dump($a instanceof B);

Результат:
bool(true)
bool(false)

#7.19 php ООП Интерфейсы. Реализация интерфейсов. Наследование интерфейсов. Совместимость сигнатур.

Интерфейсы

Определение интерфейса напоминает определение класса, только вместо class перед именем интерфейса используется ключевое слово interface:

    interface A
    {
    }

Про интерфейсы можно сказать следующее:

#7.17 php ООП Абстрактные классы и методы

Абстрактным классом называется базовый класс, который является некоторым обобщением производных классов и не предполагает создание объектов. Например, класс "Геометрическая фигура" может являться обобщением классов "Круг", "Треугольник", "Четырехугольник". А класс "Четырехугольник" — обобщением классов "Прямоугольник", "Ромб", "Трапеция". Для создания абстрактного класса используется ключевое слово abstract перед определением класса:

Pages

Subscribe to RSS - php