fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

Библиотека задач по PHP | тесты, код, задания

Библиотека задач по PHP | тесты, код, задания

رفتن به کانال در Telegram

Задачи и тесты по PHP для тренировки и обучения. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/JE-DRA Для обратной связи: @proglibrary_feeedback_bot

نمایش بیشتر
2 285
مشترکین
-224 ساعت
-117 روز
-3030 روز
آرشیو پست ها
❓ Какую ветку 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 действует акция: покупаешь один кур
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В 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 можно выбрать два курса
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 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 🐸 Библиотека задач по PHP

PHP 8.4. В WeakMap есть один ключ-объект со значением 123. После unset последней обычной ссылки на объект что вернёт count($map)?
Anonymous voting

👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране? Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить. 🕰️ Опрос займёт около 3 минут. В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео. 🔗 Поделиться опытом 🐸 Библиотека программиста

PHP 8.4. Чему равно выражение array_is_list([0 => 'a', 2 => 'b'])?
Anonymous voting

Что будет результатом кода? 👍 — world hello 👾— FiberError 🥰— hellohello world ❤️— hello world
Что будет результатом кода? 👍 — world hello 👾— FiberError 🥰— hellohello world ❤️— hello world

😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода. 🔘 Поговорим о том: — когда дорогая модель действительно нужна, а когда хватит дешёвой; — сколько стоит один прогон и куда уходят токены; — какие задачи можно отдавать субагентам; — как настроить маршрутизацию моделей; — что проверять в AI-коде перед merge. ✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после. ⬇️ 18 сентября, 19:00 МСК ⬇️ 1,5 часа · бесплатно ⬇️ Арсений Харланов и Олег Лайок 💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре. 🔗 Зарегистрироваться на вебинар⁠

👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах. Через пару недель появляется зада
👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science. 🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.
Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎 🔗 Узнать подробнее 🏃‍♀️ Proglib Academy

Один доступ вместо вечного выбора между «нужно для работы» и «давно хотелось изучить» 👇

После POST UI должен видеть своё изменение, но проекции обновляются асинхронно. Что корректнее?
Anonymous voting

🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами Но цель одна: перейти
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️ На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка. ⚡️ Предзапись на осенний поток уже открыта 🏃‍♀️ Proglib Academy

Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇

Почему в доменной логике предпочтительнее DateTimeImmutable, а не DateTime?
Anonymous voting

У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓ Что делаете с таким легаси? ❤️ Не трогаю:
У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓ Что делаете с таким легаси? ❤️ Не трогаю: работает — и ладно 👍 Переписываю с нуля и надеюсь на лучшее 🔥 Сначала покрываю тестами, потом рефакторю по частям 👾 У нас такого нет — честно-честно На курсе «ИИ для разработчиков» разберём третий подход: как с помощью агента зафиксировать текущее поведение легаси-кода тестами, а затем менять его небольшими безопасными шагами — без одного огромного PR на тысячу файлов. До 31 июля действует скидка и бессрочный доступ к материалам. 🔗 Занять место со скидкой 🏃‍♀️ Proglib Academy

Когда название файла уже само по себе считается техническим долгом 👇