Что выведет код 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 ошибок.