gpt4 book ai didi

performance - ColdFusion:效率更高的structKeyExists()而不是isDefined()

转载 作者:行者123 更新时间:2023-12-03 11:33:58 25 4
gpt4 key购买 nike

在ColdFusion中,哪个更有效?

isDefined('url.myvar')

要么
structKeyExists(url, 'myvar')

最佳答案

这些天(CF8 +)的速度差异不是很大。但是,structKeyExists确实更快一些。这就是为什么。

当您使用isDefined时,将在多个范围中将您传入的字符串作为键名进行搜索。从CF9开始,作用域列表按检查顺序为:(source)

  • 本地(本地函数,仅UDF和CFC)
  • 参数
  • 本地线程(仅内部线程)
  • 查询(不是真正的作用域,适用于查询循环中的变量)
  • 线程
  • 变量
  • CGI
  • CFFile
  • URL
  • 表格
  • Cookie
  • 客户端

  • 即使将作用域名称与 isDefined一起使用(如 if isDefined('variables.foo')),列表也将按顺序检查;如果定义了 local.variables.foo变量,则可以在 variables.foo之前找到它。

    另一方面, structKeyExists仅在传递给它的结构中搜索键名的存在;因此需要寻找的地方要少得多。

    通过使用更明确的代码( structKeyExists),不仅可以提高性能,而且我认为您的代码更具可读性和可维护性。

    关于performance - ColdFusion:效率更高的structKeyExists()而不是isDefined(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3956324/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com