В большинстве случаев это работает, поскольку приводит к приведению строк к целым или двойным числам, но вы должны быть осторожны.Это будет работать правильно для скалярных значений.Однако, если вы сделаете это:
x(new stdClass);
Вы получите E_NOTICE
.Это не так плохо, правда?Это:
x(array());
И вы получите E_ERROR
, Неподдерживаемые типы операндов , и скрипт завершится.
Возможно, вы подумаете, что это не так уж и плохо, но фатальная ошибка в неподходящий момент может привести к нестабильному состоянию вашей системы, например, из-за потери ссылочной целостности или из-за того, что ряд запросов не будет завершен.
Только вы знаете, может ли случиться случай, подобный описанному выше.Но если эти данные каким-либо образом получены от пользователя, я бы согласился с Законом Мерфи и не доверял бы ему.