в данной задаче нет ни слова о типах, только о проверке на то, что переменная не пустая. Поэтому спор == или === совершенно беспочвенный. А чтобы однозначно избежать неопределённости и решить задачу проверки на то, что переменная не пустая, используем функцию empty().
"Бывают ситуации" это за пределами рассматриваемого условия.
Я на собеседованиях всегда отшиваю тех, кто не знает алгоритмы и структуры данных
Второй раз, автору предложили 2 варианта, работающих по разному. Комментирующие разделились на 2 лагеря, что только 1 из вариантов верный. Так о каких дополнительных условиях вы пишите? Я не писал, что мое мнение самое верное, наоборот, хотел услышать аргументы других сторон. А вот вы заявили, что ваш вариант единственно верный, с аргументацией "я прав, а вы все не правы", а мою аргументацию по делу просто игнорируете.
Раз вклинились в обсуждение - давайте ваши аргументы. Если не понимаете, о чем я пишу, так прямо и спросите. Ваша "переменная не пустая" - это не абсолют в программировании, а просто специфика неявных преобразований в php. И, если автор (или тот, кто просто прочтет тему) проверяя через ==, незная, забыв или просто не учтя все вариации, наткнется, что 0 или false - это пустота, или в обратном случае, что число в строке - это не число, то ему не покажется, что я писал про что-то "лишнее".
А пока выглядит, что вы просто не понимаете, что разработка ведется не на языке, а с помощью языка. И если в доке написанно "проверяет, пуста ли переменная", то не нужно тупо копипастить, а надо разобраться, что имеется ввиду.