PHP: Магический метод __call()
В PHP предусмотрены так называемые магические методы, которые автоматически вызываются при выполнении определённых операций. Одним из таких методов является __call(). Он позволяет перехватывать вызовы несуществующих методов класса и обрабатывать их.
Метод
Синтаксис:
Параметры:
Возвращаемое значение:
Рассмотрим простой класс с методом __call(), который перехватывает вызовы несуществующих методов:
...
Что делает метод __call()?
Метод
__call() вызывается автоматически, когда происходит вызов метода, который не объявлен в классе. Это даёт возможность:
- Управлять поведением при вызове несуществующих методов.
- Осуществлять делегирование вызовов другим методам или объектам.
- Контролировать логику обращения к динамическим методам.
Синтаксис:
ВыделитьСинтаксис: __call()
public function __call(string $method, array $arguments): mixedПараметры:
$method: Имя вызываемого метода.$arguments: Массив аргументов, переданных в метод.
Возвращаемое значение:
- Любое значение, которое требуется вернуть вызывающей стороне.
Пример использования
Рассмотрим простой класс с методом __call(), который перехватывает вызовы несуществующих методов:
ВыделитьPHP
class Calculato- Жалоба
PHP: Отличия strlen() от mb_strlen()
Функции strlen() и mb_strlen() предназначены для измерения длины строки, но они отличаются подходом к обработке символов и кодировок.
Функция strlen()
Функция mb_strlen()
Основные отличия
Функция strlen()
- Что делает: Возвращает количество байтов в строке.
- Поддерживаемые кодировки: Однобайтовые кодировки (ASCII, ISO-8859-* и т.д.).
- Когда использовать: Если работа ведётся с латиницей или символами, которые занимают один байт.
Функция mb_strlen()
- Что делает: Возвращает количество символов в строке.
- Поддерживаемые кодировки: Многобайтовые кодировки (UTF-8, UTF-16, Shift_JIS и т.д.).
- Когда использовать: Если работа ведётся с кириллическими символами, китайскими иероглифами или другими символами, занимающими несколько байт.
Пример разницы
$str_utf8 = "Привет, мир!";
// strlen() возвращает количество байтов
echo strlen($str_utf8); // Вывод: 24 (12 символов × 2 байта на символ в UTF-8)
// mb_strlen() возвращает количество символов
echo mb_strlen($str_utf8, 'UTF-8'); // Вывод: 12 (количество символов)Когда использовать
strl
PHP: Функция strlen()
Одной из наиболее часто используемых функций в PHP является strlen(). Она позволяет получить длину строки в символах, что чрезвычайно полезно при работе с текстом.
Функция strlen() возвращает количество символов в строке. Она принимает единственный аргумент — строку, длину которой нужно измерить.
Синтаксис:
Параметр:
Возвращаемое значение:
Измерение длины строки
Проверка минимальной длины строки
Проверка наличия данных в строке
...
Что делает функция strlen()?
Функция strlen() возвращает количество символов в строке. Она принимает единственный аргумент — строку, длину которой нужно измерить.
Синтаксис:
strlen(string $string): intПараметр:
string: строка, длину которой нужно получить.
Возвращаемое значение:
int: целое число, представляющее количество символов в строке.
Примеры использования
Измерение длины строки
$str = "Привет, мир!";
$len = strlen($str);
echo "Длина строки: $len"; // Вывод: Длина строки: 12Проверка минимальной длины строки
$minLength = 5;
$str = "Test";
if (strlen($str) >= $minLength) {
echo "Строка достаточно длинная.";
} else {
echo "Строка слишком короткая.";
}Проверка наличия данных в строке
$str = "";
if (strlen($str) == 0) {
echo "Строка пустая.";
} else {
echoJavaScript: Функция map()
Функция map() создаёт новый массив, применяя указанную функцию к каждому элементу исходного массива. Она не изменяет исходный массив, а возвращает новый массив с результатами.
Синтаксис:
Параметры:
Объяснение:
Преобразование строк в верхний регистр:
...
Синтаксис:
ВыделитьJavaScript
const newArray = array.map(function(currentValue, index, array) {
// Возвращаемое значение будет элементом нового массива
});Параметры:
currentValue: Текущий обрабатываемый элемент массива.index: Индекс текущего обрабатываемого элемента.array: Исходный массив, к которому применяется функцияmap().
Пример использования
ВыделитьJavaScript
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(function(num) {
return num * 2;
});
console.log(doubledNumbers); // Вывод: [2, 4, 6, 8, 10]Объяснение:
- Исходный массив:
numbers = [1, 2, 3, 4, 5]. - Функция:
function(num) { return num * 2; }— удваивает каждый элемент массива. - Новый массив:
doubledNumbers = [2, 4, 6, 8, 10].
Дополнительные примеры
Преобразование строк в верхний регистр:
ВыделитьJavaScript
const names =PHP: Функция str_contains()
Функция str_contains() была введена в PHP 8.0 и позволяет проверить, содержит ли строка заданную подстроку. Это простой и удобный способ для работы со строками, который заменяет более сложные конструкции, такие как strpos() или регулярные выражения.
Синтаксис функции str_contains():
Пример использования:
Вывод:
Синтаксис функции str_contains():
str_contains(string $haystack, string $needle): bool$haystack: основная строка, в которой производится поиск.$needle: подстрока, которую нужно найти.- Возвращаемое значение:
true, если подстрока найдена, иfalse— если нет.
Пример использования:
$text = "Пример строки с пробелами";
if (str_contains($text, 'строка')) {
echo "Строка содержит подстроку 'строка'.";
} else {
echo "Строка не содержит подстроку 'строка'.";
}Вывод:
Строка содержит подстроку 'строка'.
Преимущества str_contains()
- Простота использования: функция str_contains() значительно упрощает проверку наличия подстроки в строке.
- Чтение кода: код становится более читаемым и понятным, так как функция имеет интуитивно
Реклама




