Рубрики
Uncategorized

Перечитывание серии записных книжек с руководством по PHP (II)

Автор оригинала: David Wong.

справочник по языку

1. типы

1.1 ВВЕДЕНИЕ

1.2 Поплавковый Тип Поплавка

Точность с плавающей запятой ограничена

Например, floor ((0,1 + 0,7) * 10) обычно возвращает 7 вместо 8, как ожидалось, потому что внутреннее представление результата фактически аналогично представлению 7,999999999991118.

1.3 Строка строка

Строка до 2 ГБ

Строка может быть выражена четырьмя способами

  • Одинарная кавычка
  • Двойные кавычки
  • Грамматическая структура Heredoc
  • Теперь док грамматическая структура

1.4 Массив массив

Массивы в PHP на самом деле являются упорядоченным отображением. Сопоставление-это тип, который связывает значения с ключами. Этот тип оптимизирован во многих отношениях, поэтому его можно рассматривать как реальный массив или список (вектор), хэш-таблицу (реализацию сопоставления), словарь, коллекцию, стек, очередь и другие возможности. Поскольку значением элемента массива также может быть другой массив, также допускаются древовидные структуры и многомерные массивы.

1.5 Ресурс тип ресурса

Ресурс ресурс-это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются с помощью специализированных функций

  • Высвобождение ресурсов

Система подсчета ссылок является частью движка Zend, который автоматически определяет, что на ресурс больше нет ссылок (как в Java). В этом случае все внешние ресурсы, используемые этим ресурсом, будут освобождены системой сбора мусора. В результате отпадает необходимость в ручном освобождении памяти

1.6 НОЛЬ

Специальное нулевое значение указывает, что переменная не имеет значения. Единственное возможное значение для нулевого типа-NULL.

Переменная считается нулевой в следующих случаях

  • Присвоено значение NULL
  • Еще не назначен
  • С помощью unset ()

1.7 Псевдотип

Псевдотипы-это типы и значения, используемые в документах PHP для указания того, какие параметры могут быть использованы. Обратите внимание, что они не являются собственными типами в языке PHP. Таким образом, вы не можете использовать псевдотипы для подсказок типа в пользовательских функциях

2. переменная

2.1 Диапазон Изменения

Область действия переменной-это контекст, в котором она определена (т. е. диапазон ее допустимости). Большинство переменных PHP имеют один диапазон. Этот отдельный охват области также включает файлы, представленные include и require

Здесь переменная $a вступит в силу в содержащем файле B. Inc. Однако в определяемых пользователем функциях будет введен локальный диапазон функций. Любая переменная, используемая в функции, по умолчанию будет ограничена локальной функцией.

2.2 Переменные Переменные

$a = 'hello';
$$a = 'world';
echo "$a ${$a}";

3. постоянный

3.1 Магическая константа

__ СТРОКА__ Номер текущей строки в файле
__ФАЙЛ__ Полный путь и номер файла файла
__ДИР__ Каталог, в котором находится документ
__ФУНКЦИЯ__ Имя функции
__КЛАСС__ Имя класса
__ТРЕЙТ__ Название признака
__МЕТОД__ Имя метода класса
__ПРОСТРАНСТВО ИМЕН__ Имя текущего пространства имен (с учетом регистра)

4. оператор

4.1 Арифметический оператор

// power
$a = 3;
$b = 2;
echo $a ** $b;

4,2-разрядный оператор

Битовые операторы позволяют вычислять и манипулировать битами, указанными в целых числах

И Биты как в $a, так и в $b будут установлены на 1 $a и $b
Или (побитовое или) Вы установите любой из битов $a и $b равным 1 Вертикальная линия (примечание 1) $b
Xor (Бит XOR) Вы установите один бит $a и $b равным 1, а другой-0. $а ^ $б
Нет Установите значение 0 в $a равным 1, и наоборот ~ $a
Сдвиг влево (сдвиг влево) Переместите бит в $a влево $b раз (каждый ход означает “умножить на 2”) $a << $b
Сдвиг вправо (сдвиг вправо) Переместите бит в $a вправо на $b (каждое движение означает “разделить на 2”) $a >> $b

Примечание 1: Здесь “вертикальная” линия “|”, где поддержка уценки кажется немного проблематичной

4.3 оператор сравнения

Операторы сравнения, как следует из их названий, позволяют сравнивать два значения

Быть равным ИСТИННЫЙ, если $a равно $b после преобразования типа $a == $b
Конгруэнтность ИСТИННЫЙ, если $a равно $b, и они одного типа $a = = = $b
неравный ИСТИННЫЙ, если $a не равно $b после преобразования типа $а != $b
неравный ИСТИННЫЙ, если $a не равно $b после преобразования типа $a <> $b
Несоответствие ИСТИННЫЙ, если $a не равно $b, или они разных типов $a !== $b
Маленькие и ИСТИННЫЙ, если $a строго меньше, чем $b $a < $b
больше, чем ВЕРНО, если $a строго больше, чем $b $a > $b
Меньше или равно ИСТИННЫЙ, если $a меньше или равно $b $a <= $b
Больше или равно ИСТИННЫЙ, если $a больше или равно $b $a >= $b
Оператор космического аппарата (Комбинированный компаратор) Когда $a меньше, равно или больше $b, возвращается целочисленное значение меньше, равно или больше 0 соответственно. Доступен PHP7. $a <=> $b
Оператор слияния NULL Первый операнд, который существует слева направо и не является нулевым. Если значение none не определено и не равно NULL, возвращается значение NULL. Доступен PHP7 $ а ?? $b ?? $c

4.4 Оператор Выполнения

PHP поддерживает оператор выполнения: обратные кавычки (“). Обратите внимание, что это не одинарная кавычка! PHP попытается выполнить содержимое перевернутых кавычек в виде команд оболочки и вернуть их выходную информацию (то есть они могут быть назначены переменной, а не просто отброшены в стандартный вывод). Эффект использования оператора перевернутой кавычки “`” такой же, как и у функции shell_exec().

4.5 Оператор Массива

союз Объединение $a и $b $a + $b
Равный ВЕРНО, если $a и $b имеют одинаковую пару ключ/значение $a == $b
Конгруэнтность ВЕРНО, если $a и $b имеют одинаковую пару ключ/значение и одинаковый порядок и тип $a = = = $b
неравный ИСТИННЫЙ если $a не равно $b $а != $b
неравный ИСТИННЫЙ если $a не равно $b $a <> $b
Несоответствие ИСТИННЫЙ если $a не равно $b $a !== $b

4.6 оператор типа

Instanceof используется для определения того, принадлежит ли переменная PHP экземпляру класса

Instanceof также можно использовать для определения того, наследуется ли переменная от экземпляра дочернего элемента родительского класса.

Instanceof также можно использовать для определения того, является ли переменная экземпляром объекта, реализующего интерфейс?

5. Управление технологическим процессом

5.1 Альтернативная грамматика для управления технологическим процессом

PHP предоставляет некоторый альтернативный синтаксис для управления процессами, включая if, while, for, foreach и switch. Основной формой альтернативной грамматики является замена левых фигурных скобок ({) двоеточиями (:), правых фигурных скобок (}) на endif;, endwhile;, endfor;, endforeach; и endswitch соответственно.

if (true) :
    echo "run\n";
endif;

5.2 делать-в то время как

5.3 перерыв

Прерывание завершает выполнение текущей структуры for, foreach, while, do-while или switch

Break может принимать необязательный параметр number, чтобы решить, из скольких циклов нужно выпрыгнуть

5.4 продолжить

Продолжить используется в структуре цикла, чтобы пропустить оставшийся код в этом цикле и запустить следующий цикл, когда условие будет выполнено

Continue принимает необязательный параметр number, чтобы решить пропустить несколько циклов до конца цикла. Значение по умолчанию равно 1, что означает переход к концу текущего цикла

5.5 объявить

Структура объявления используется для задания инструкций выполнения для фрагмента кода

declare(ticks=1);

// A function called on each tick event
function tick_handler()
{
    echo "tick_handler() called\n";
}

register_tick_function('tick_handler');

$a = 1;

if ($a > 0) {
    $a += 2;
    print($a);
}

5.6 требуется

Требования и включения практически идентичны, за исключением того, что сбой обрабатывается по-разному. Требование генерирует ошибку на уровне E_COMPILE_ERROR при возникновении ошибки. Другими словами, это приведет к прерыванию сценария, а включение приведет только к появлению предупреждений (E_WARNING), и сценарий продолжит работу.

6. функция

6.1 Определяемые пользователем функции

Когда функция определена условно, она должна быть определена перед вызовом функции.

PHP не поддерживает перегрузку функций, а также не может отменять или переопределять объявленные функции

Однако избегайте рекурсивных вызовов функций/методов, которые превышают 100-200 уровней, поскольку они могут привести к сбою стека и завершению текущего сценария. Бесконечную рекурсию можно считать ошибкой программирования

6.2 Функция Переменной

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

function foo() {
    echo "In foo()
\n"; } $func = 'foo'; $func(); // This calls foo()

6.3 Анонимные Функции

Анонимные функции, также известные как замыкания, позволяют временно создавать функции без указанного имени. Значение, наиболее часто используемое в качестве параметра обратного вызова

$greet = function($name)
{
    printf("Hello %s\r\n", $name);
};

$greet('World');
$greet('PHP');

7. Классы и объекты

7.1 Основные понятия

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

Класс может содержать свои собственные константы, переменные (называемые атрибутами) и функции (называемые методами).

Когда метод вызывается внутри определения класса, доступна псевдопеременная, $this

Автоматическая загрузка класса 7.2

При написании объектно-ориентированных (ООП) программ многие разработчики создают новый PHP-файл для каждого класса. Это приводит к раздражению, что в начале каждого скрипта вам нужно включить длинный список (у каждого класса есть файл)

В PHP 5 это больше не требуется. Функция spl_autoload_register() регистрирует любое количество загрузчиков и автоматически загружает их при использовании неопределенных классов и интерфейсов. Зарегистрировав автозагрузчик, механизм сценариев получает последний шанс загрузить необходимые классы до того, как PHP выйдет из строя.

spl_autoload_register(function ($class_name) {
    require_once $class_name . '.php';
});

$obj  = new MyClass1();
$obj2 = new MyClass2();

7.3 Конструктор и деструктор

  • Конструктор

PHP 5 позволяет разработчикам определять метод как конструктор в классе. Классы с конструкторами вызывают этот метод каждый раз, когда они создают новый объект, поэтому идеально выполнить некоторую инициализацию перед использованием объекта.

  • Деструктор

PHP 5 вводит понятие деструкторов, которые аналогичны другим объектно-ориентированным языкам, таким как C++. Деструктор выполняется, когда все ссылки на объект удаляются или когда объект явно уничтожен

7.4 абстрактные классы

PHP 5 поддерживает абстрактные классы и методы. Классы, определенные как абстрактные, не могут быть созданы. Любой класс, если хотя бы один из его методов объявлен абстрактным, должен быть объявлен абстрактным. Метод, определенный как абстрактный, просто объявляет свой вызов (параметры) и не может определить его конкретную функциональную реализацию.

7.5 Интерфейс объекта

Используя интерфейсы, вы можете указать, какие методы должен реализовывать класс, но вам не нужно определять конкретное содержимое этих методов.

Интерфейсы определяются ключевым словом interface, точно так же, как определение стандартного класса, но все определенные методы являются пустыми

Все методы, определенные в интерфейсе, должны быть общедоступными, что является особенностью интерфейса.

  • Реализации

Для реализации интерфейса используйте оператор implements. Все методы, определенные в интерфейсе, должны быть реализованы в классе, в противном случае будет сообщено о фатальной ошибке. Классы могут реализовывать несколько интерфейсов и использовать запятые для разделения имен нескольких интерфейсов

7.6 Черта характера

Начиная с PHP 5.4.0, в PHP реализован метод повторного использования кода, называемый trait.

Черта – это механизм повторного использования кода для отдельных языков наследования, таких как PHP. Чтобы уменьшить ограничения одного языка наследования, функция Trait позволяет разработчикам свободно использовать методы в отдельных классах в разных иерархиях. Семантика сочетания признака и классов определяет способ снизить сложность и избежать типичных проблем, связанных с традиционным множественным наследованием и смешиванием классов.

Черта похожа на lass, но предназначена только для тонкого и последовательного сочетания функций. Не может быть создан самим признаком. Он добавляет комбинацию горизонтальных функций к традиционному наследованию; то есть наследование не требуется между несколькими классами приложения.

7.7 Анонимные Классы

7.8 Магический Метод

_ _ Построение (), разрушение (), вызов (), статический вызов (), get (), set (), isset (), unset (), сон (), пробуждение (), To (), вызов () и другие методы называются магическими методами в PHP.

7.9 Последнее ключевое слово

PHP 5 добавляет последнее ключевое слово. Если метод в родительском классе объявлен окончательным, подкласс не может переопределить метод. Если класс объявлен окончательным, он не может быть унаследован

8. генератор

9. Предопределенные переменные

Супер Глобальные Переменные Супер глобальные переменные-это встроенные переменные, которые всегда доступны во всех областях
$ГЛОБАЛЬНЫЕ Ссылка на все переменные, доступные в глобальной области
$_СЕРВЕР Информация о сервере и среде выполнения
$_GET HTTP ПОЛУЧИТЬ переменную
$_ПОСТ Переменная HTTP POST
$_ФАЙЛЫ Переменная загрузки HTTP-файла
$ _ ЗАПРОС Переменная HTTP-запроса
$_СЕССИЯ Переменная сеанса
$_ENV переменная среды
$_КУККИ HTTP-файлы cookie
$php_errormsg-ошибка Предыдущее сообщение об ошибке
$HTTP_RAW_ПОСТ_ДАННЫЕ Собственные почтовые данные
$http_response_header-заголовок Заголовок HTTP-ответа
$argc Количество параметров, переданных скрипту
$argv Массив параметров, переданных скрипту

Вопросы и ответы для интервью PHP

В сочетании с фактическим интервью PHP система обобщает все виды вопросов в интервью и пытается предоставить краткие и точные ответы. Если у вас возникнут проблемы во время собеседования по PHP, вы можете задавать вопросы. Он включает в себя сетевой протокол, структуру и алгоритм данных, PHP, Web, MySQL, Redis, Linux, безопасность, шаблон проектирования, архитектуру, самопровозглашение, причины ухода, планирование карьеры, подготовку и другие части.

Оригинал: “https://developpaper.com/rereading-php-manual-notebook-series-ii/”