Как передаются объекты в PHP по ссылке или по значению?
в php4 объекты передавались по значению, в php5 - по ссылке, отсюда может путаница.И пользуясь случаем, еще один вопрос, связанный с мультинаследованим. PHP все-таки поддерживает его или нет? Другими словами, когда задают такой вопрос, имеют ввиду трейты или нет?
В php нет множественного наследования (класс может расширить только 1 класс). Трейты - это немного другое.
Я все время думал, что объекты передаются по ссылке, а в тесте ответ другой. 
Сами объекты (а точнее их идентификаторы) передаются по значению (т.е. происходит копирование в памяти). Другое дело, что в этих значениях не хранится вся структура объектов, а лишь указатель на структуру. Именно поэтому если вы передадите объект в функцию через параметр,  а внутри сделаете unset, то он все ещё будет доступен вне функции, но вот атрибут изменится и внутри и вне функции. Отсюда складывается ложное представление, что объекты передаются по ссылке.  Здесь ошибки в тесте нет.
Подробнее здесь: https://www.php.net/manual/ru/language.oop5.refere...

И пользуясь случаем, еще один вопрос, связанный с мультинаследованим. PHP все-таки поддерживает его или нет? Другими словами, когда задают такой вопрос, имеют ввиду трейты или нет?
Когда спрашивают о наследовании, то неплохо бы уточнять, что имеется в виду наследование классов. Т.к. множественное наследование в PHP все же есть. И это не трейты, а интерфейсы, которые позволяют наследоваться от 2 других интерфейсов одновременно. Так что тест не совсем корректный. И в том виде как его задали вы ответили правильно.
Подробнее здесь: https://www.php.net/manual/ru/language.oop5.interf...