Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
interface Shape
{
public function area(): float;
}
class Square implements Shape
{
public function area(): float { return 3 ** 2; }
}
$s = new Square();
echo $s instanceof Shape ? 'yes' : 'no', ' ', $s->area(), "\n";yes 9
- Ждать, что
instanceofпроверяет только класс самого объекта: он истинен для класса, каждого его родителя и каждого реализованного интерфейса, поэтому$s instanceof Shapeдаётtrue. - Ждать, что
echoнапечатает9.0для результата типаfloat:echoотбрасывает нулевую дробную часть, и9.0печатается как9; тип покажетvar_dump.
- Что вернёт
instanceof, если слева от него не объект? - Что произойдёт, если
Squareобъявитimplements Shape, но не напишет методarea()?