Какой-то у вас бессвязный диалог. Griboks совершенно прав, что современное ПО дико тормозное. Потому что оптимальность кода приносится в жертву оптимальности разработки. Другое дело, что это не от того, что разработчики ничего не учили.
Возражать же ему про "более сложный стек" - это какая-то глупость. Начиная с того, что MySQL/PHP таки являются основным стеком вконтактика, и заканчивая тем, что человек явно рассказывает про фронт.
Mercury Effirium, я наверное слишком сложно для вас написал в ответе.
Надо было просто написать что если в getUserEmail() передать не объект класса Controller (или его наследник), то РНР выдаст ошибку. Так понятнее?
То есть это не "комментарий для программиста", а комментарий для самого РНР. ТИ используется оно не в коде, а при выполнении программы. РНР проверяет тип переменной и выдает ошибку, если тип не тот
либо делать один множественный запрос insert, либо заключить ваш foreach в транзакцию
какой ещё ответ вам нужен?