Что выведет код Junior Типы и строгая типизация обновлено

Явные приведения типов

Вопрос

Что выведет скрипт (PHP 8.3)? По строке на каждый вывод.

<?php
var_dump((int) "12abc");
var_dump((int) "abc");
var_dump((bool) "0");
var_dump((bool) "0.0");
var_dump((string) false);
var_dump(intdiv(7, 2), 7 % -3);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: int(12), int(0), bool(false), bool(true), string(0) "", int(3), int(1). Явное приведение (int) берёт ведущие цифры и молча игнорирует остальное: 12; без цифр 0.

Что выведет

int(12)
int(0)
bool(false)
bool(true)
string(0) ""
int(3)
int(1)

Разбор

Явное приведение (int) берёт ведущие цифры и молча игнорирует остальное: 12; без цифр 0. Строка "0" ложная, а "0.0" нет. false в строку это пустая строка. intdiv делит нацело: 3, а знак остатка % совпадает со знаком делимого: 1.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.