Под капотом, в пхп вообще по сути типов нет как таковых. Создаешь любую переменную, под капотом у тебя структура, с алоцироваными полями под каждый тип, значение кидается в память, получая значения ты по сути получаешь указатель на имя переменной и ссылку на значение. По крайней мере пару лет назад ещё так было, если оракл не оптимизировали там все