Библиотека задач по PHP | тесты, код, задания
Kanalga Telegram’da o‘tish
Задачи и тесты по PHP для тренировки и обучения. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/JE-DRA Для обратной связи: @proglibrary_feeedback_bot
Ko'proq ko'rsatish2 285
Obunachilar
-224 soatlar
-117 kun
-3030 kun
Postlar arxiv
❓ Какую ветку match выберет для строки с числом?
PHP 8.4. Что выведет код?
<?php
$value = '1';
$result = match ($value) {
1 => 'integer',
'1' => 'string',
default => 'other',
};
echo $result;
👾 — integer
👍 — string
🥰 — other
⚡️ — UnhandledMatchError
Ответ: 👍 — string.
match сравнивает значение с вариантами строго, как оператор ===. Строка '1' не равна целому числу 1 при таком сравнении. Совпадает вторая ветка, поэтому результат — string.
Правило в документации PHP
🐸 Библиотека задач по PHP📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.
В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.
Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
❓ Скопирует ли clone объект во вложенном свойстве?
PHP 8.4. Что выведет код?
<?php
class Profile {
public string $name = 'Ann';
}
class User {
public Profile $profile;
}
$original = new User();
$original->profile = new Profile();
$copy = clone $original;
$copy->profile->name = 'Bob';
echo $original->profile->name;
👾 — Ann
👍 — Ошибка: вложенный объект нельзя менять
🥰 — Bob
⚡️ — Ошибка: clone запрещён без __clone
Ответ: 🥰 — Bob.
Без дополнительной логики __clone выполняется поверхностное копирование свойств. original и copy — разные объекты User, но их свойства profile указывают на один Profile. Изменение его name видно через оба контейнера. Для независимого Profile его нужно клонировать отдельно.
Правило в документации PHP
🐸 Библиотека задач по PHP❓ Какое значение запомнит стрелочная функция после изменения переменной?
PHP 8.4. Что выведет код?
<?php
$value = 10;
$arrow = fn() => $value;
$reference = function () use (&$value) {
return $value;
};
$value = 20;
echo $arrow(), ' ', $reference();
👾 — 10 20
👍 — 20 20
🥰 — 10 10
⚡️ — Ошибка компиляции
Ответ: 👾 — 10 20.
Стрелочная функция автоматически захватывает внешнюю переменную по значению: для arrow сохраняется число 10. Замыкание с use (&$value) захватывает переменную по ссылке и при вызове видит уже 20. В задаче используется число, а не объект.
Правило в документации PHP
🐸 Библиотека задач по PHP❓ Почему isset и array_key_exists по-разному проверяют один ключ?
PHP 8.4. Что выведет код?
<?php
$data = ['token' => null];
var_dump(isset($data['token']));
var_dump(array_key_exists('token', $data));
👾 — true, затем true
👍 — true, затем false
🥰 — false, затем false
⚡️ — false, затем true
Ответ: ⚡️ — false, затем true.
isset возвращает false, если значение равно null. array_key_exists проверяет наличие самого ключа, а не значение под ним. Ключ token существует, хотя в нём хранится null.
Правило в документации PHP
🐸 Библиотека задач по PHP😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!
До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.
Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
❓ Чем сложение массивов через + отличается от array_merge?
PHP 8.4. Что выведет код?
<?php
$left = ['timeout' => 10];
$right = ['timeout' => 20];
$union = $left + $right;
$merged = array_merge($left, $right);
echo $union['timeout'], ' ', $merged['timeout'];
👾 — 20 20
👍 — 10 20
🥰 — 10 10
⚡️ — Ошибка: массивы нельзя складывать
Ответ: 👍 — 10 20.
Оператор + объединяет массивы по ключам и при совпадении сохраняет значение из левого массива. array_merge для одинаковых строковых ключей берёт значение из более позднего массива. Здесь ключ timeout строковый: правила перенумерации числовых ключей не участвуют.
Правило в документации PHP
🐸 Библиотека задач по PHPPHP 8.4. В WeakMap есть один ключ-объект со значением 123. После unset последней обычной ссылки на объект что вернёт count($map)?
Repost from Библиотека программиста
👀 Как вы смотрите видео?
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
🕰️ Опрос займёт около 3 минут.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
🔗 Поделиться опытом
🐸 Библиотека программиста
PHP 8.4. Чему равно выражение array_is_list([0 => 'a', 2 => 'b'])?
Что будет результатом кода?
👍 — world hello
👾— FiberError
🥰— hellohello world
❤️— hello world
😭 Как не потратить недельный лимит AI-кодинга за три дня?
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
🔘 Поговорим о том:
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.
⬇️ 18 сентября, 19:00 МСК
⬇️ 1,5 часа · бесплатно
⬇️ Арсений Харланов и Олег Лайок
💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре.
🔗 Зарегистрироваться на вебинар
Repost from Proglib.academy | IT-курсы
👅 Самое сложное — выбрать не курс, а направление
Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.
🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎 🔗 Узнать подробнее 🏃♀️ Proglib Academy
Один доступ вместо вечного выбора между «нужно для работы» и «давно хотелось изучить» 👇
После POST UI должен видеть своё изменение, но проекции обновляются асинхронно. Что корректнее?
Repost from Proglib.academy | IT-курсы
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами
Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️
На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.
⚡️ Предзапись на осенний поток уже открыта
🏃♀️ Proglib Academy
Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇
Почему в доменной логике предпочтительнее DateTimeImmutable, а не DateTime?
Repost from Proglib.academy | IT-курсы
У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓
Что делаете с таким легаси?
❤️ Не трогаю: работает — и ладно
👍 Переписываю с нуля и надеюсь на лучшее
🔥 Сначала покрываю тестами, потом рефакторю по частям
👾 У нас такого нет — честно-честно
На курсе «ИИ для разработчиков» разберём третий подход: как с помощью агента зафиксировать текущее поведение легаси-кода тестами, а затем менять его небольшими безопасными шагами — без одного огромного PR на тысячу файлов.
До 31 июля действует скидка и бессрочный доступ к материалам.
🔗 Занять место со скидкой
🏃♀️ Proglib Academy
Когда название файла уже само по себе считается техническим долгом 👇
