Сервер ColdFusion обновлен до ColdFusion 2018 (с ColdFusion 9 или 11).
Одно из самых старых приложений на этом сервере содержит такой код: < cfif arguments[key] NEQ "">
Раньше это, кажется, было эквивалентно isDefined("arguments.key")
или StructKeyExists(arguments, key)
.
Сегодня, несмотря на то, что isDefined("arguments.key")
ложно, а StructKeyExists(arguments, key)
тоже отрицательно, <cfif arguments[key] NEQ "">
терпит неудачу, потому что arguments[key] больше не ведет себя как пустая строка. На самом деле < cfdump var="#arguments[key]#">
отображает «undefined».
Что я могу сделать, чтобы избежать изменения кода везде, где вместо StructKeyExists
использовалась пустая строка? Возможно, параметр сервера ColdFusion? (THIS.enableNullSupport
не помогло)
cfparam
, который по умолчанию устанавливает для этих несуществующих переменных пустые строки (default=""
). Это также может быть связано с кровотечением из прицела. Трудно сказать, не видя фактического кода, где вы столкнулись с проблемой. - person Alex   schedule 27.02.2021