ну вот, например, делаем два запроса get, допустим /get/user. Между ними данные пользователя изменятся, по какому-то бизнес-процессу. Получается, в первый раз какие-то одни данные прилетают, а второй - уже другие.
Нормально, когда запланированная функция запускает другую запланированную функцию
мне нужно суммировать в случае чисел, и конкатенировать в случае строк
вы не автор вопроса. Вы вклинились в обсуждение, придумали какие-то свои дополнительные условия, которых не было в вопросе и теперь самоутверждаетесь в теме рассказывая, что ваше мнение самое правильное если рассматривать именно ваши уточнения, а не исходный вопрос.
Играйте в эти игры сами.
в данной задаче нет ни слова о типах, только о проверке на то, что переменная не пустая. Поэтому спор == или === совершенно беспочвенный. А чтобы однозначно избежать неопределённости и решить задачу проверки на то, что переменная не пустая, используем функцию empty().
"Бывают ситуации" это за пределами рассматриваемого условия.