将PHP数组转换为ColdFusion语法
我有下面一段PHP代码,它将值存储在数组中,但我正在用ColdFusion重写应用程序,不知道在ColdFusion中执行相同函数的语法是什么将PHP数组转换为ColdFusion语法,php,arrays,coldfusion,Php,Arrays,Coldfusion,我有下面一段PHP代码,它将值存储在数组中,但我正在用ColdFusion重写应用程序,不知道在ColdFusion中执行相同函数的语法是什么 $data = array("isReadOnly" => false, "sku" => "ABCDEF", "clientVersion" => 1, "nuc" => $NUC, "nucleusPersonaId" => $personaID, "nucleusPersonaDisplayName" => $d
$data = array("isReadOnly" => false, "sku" => "ABCDEF", "clientVersion" => 1, "nuc" => $NUC, "nucleusPersonaId" => $personaID, "nucleusPersonaDisplayName" => $dispname, "nucleusPersonaPlatform" => $platform, "locale" => $locale, "method" => "idm", "priorityLevel" => 4, "identification" => array( "EASW-Token" => "" ));
有人能帮忙吗?这不是数组。它是一个映射键-值对的映射。除了数值数组和关联数组之外,PHP对这两种结构没有任何区别,但基于Java的ColdFusion确实如此。在ColdFusion中,等效的结构是:
<cfscript>
data = structNew();
data["isReadOnly"] = false;
data["sku"] = "ABCDEF";
// You can also nest structs, if need be
data["identification"] = structNew();
data["identification"]["EASW-Token"] = "";
</cfscript>
这不是一个数组。它是一个映射键-值对的映射。除了数值数组和关联数组之外,PHP对这两种结构没有任何区别,但基于Java的ColdFusion确实如此。在ColdFusion中,等效的结构是:
<cfscript>
data = structNew();
data["isReadOnly"] = false;
data["sku"] = "ABCDEF";
// You can also nest structs, if need be
data["identification"] = structNew();
data["identification"]["EASW-Token"] = "";
</cfscript>
PHP中的内容看起来像ColdFusion中的“结构”或“对象” 尝试以下代码,将PHP转换为CFML语法:
<cfset variables.data = {
"isReadOnly" = false,
"sku" = "ABCDEF",
"clientVersion" = 1,
"nuc" = variables.NUC,
"nucleusPersonaId" = variables.personaID,
"nucleusPersonaDisplayName" = variables.dispname,
"nucleusPersonaPlatform" = variables.platform,
"locale" = variables.locale,
"method" = "idm",
"priorityLevel" = 4,
"identification" = { "EASW-Token" = "" }
} />
<cfdump var="#variables.data#" />
ColdFusion:
你也可以这样写:
<cfset hello = 'world' />
然而,我喜欢做一个很好的练习,总是确定变量的范围。variables范围是变量的默认范围,但是明确声明它以避免命名冲突仍然是一种好的做法
希望这有帮助。
迈克
PS-作为一个额外的点,数组是以一种非常相似的方式创建的,除了使用[]代替{}之外。这是一篇关于如何在ColdFusion中创建结构和数组的好文章
PHP中的内容看起来像ColdFusion中的“结构”或“对象” 尝试以下代码,将PHP转换为CFML语法:
<cfset variables.data = {
"isReadOnly" = false,
"sku" = "ABCDEF",
"clientVersion" = 1,
"nuc" = variables.NUC,
"nucleusPersonaId" = variables.personaID,
"nucleusPersonaDisplayName" = variables.dispname,
"nucleusPersonaPlatform" = variables.platform,
"locale" = variables.locale,
"method" = "idm",
"priorityLevel" = 4,
"identification" = { "EASW-Token" = "" }
} />
<cfdump var="#variables.data#" />
ColdFusion:
你也可以这样写:
<cfset hello = 'world' />
然而,我喜欢做一个很好的练习,总是确定变量的范围。variables范围是变量的默认范围,但是明确声明它以避免命名冲突仍然是一种好的做法
希望这有帮助。
迈克
PS-作为一个额外的点,数组是以一种非常相似的方式创建的,除了使用[]代替{}之外。这是一篇关于如何在ColdFusion中创建结构和数组的好文章
另一个选项是分别声明每个选项。您也不需要这些变量。前缀此语法可能最常用于将attributecollection=选项用于标记,例如,但在任何情况下都可以使用
<cfset data = {} /> // create a struct
<cfset data.isReadOnly = false />
<cfset data.sku = 'ABCDEF' />
<cfset data.clientVersion = 1 />
<cfset data.nuc = NUC />
<cfset data.nucleusPersonaId = personaID />
<cfset data.nucleusPersonaDisplayName = dispname />
<cfset data.nucleusPersonaPlatform = platform />
<cfset data.locale = locale />
<cfset data.method = 'idm' />
<cfset data.priorityLevel = 4 />
<cfset data.identification = { EASW-Token = '' } />
<cfdump var="#data#" />
另一个选项是分别声明每个选项。您也不需要这些变量。前缀此语法可能最常用于将attributecollection=选项用于标记,例如,但在任何情况下都可以使用
<cfset data = {} /> // create a struct
<cfset data.isReadOnly = false />
<cfset data.sku = 'ABCDEF' />
<cfset data.clientVersion = 1 />
<cfset data.nuc = NUC />
<cfset data.nucleusPersonaId = personaID />
<cfset data.nucleusPersonaDisplayName = dispname />
<cfset data.nucleusPersonaPlatform = platform />
<cfset data.locale = locale />
<cfset data.method = 'idm' />
<cfset data.priorityLevel = 4 />
<cfset data.identification = { EASW-Token = '' } />
<cfdump var="#data#" />
看一看这些文档也可能会有所帮助:现在为什么他会被回答,埃文他没有尝试@亚当注意到了down@user3454903你看不出你问的问题和这个人问的有什么区别吗?他们只问了一句话。你问了几十行代码。建议您阅读以下内容:,特别是第3点。即使我可以将事情分开,但我知道您仍然会这样做,查看文档也可能会有所帮助:现在为什么回答他,evn他没有尝试@亚当注意到了down@user3454903你看不出你问的问题和这个人问的有什么区别吗?他们只问了一句话。你问了几十行代码。建议您阅读以下内容:,特别是第3点。即使我可以拆分,但我知道您仍然会这样做,注意:在CF8及以上版本中,您可以使用{},而不是structNew@MattBusche但如果这真的能提高可读性,那就相当有争议了;当你理解了你在做什么的时候,你可以随时学习编写更短的代码structNew@MattBusche但如果这真的能提高可读性,那就相当有争议了;而且,当您理解了自己在做什么时,您可以随时学习编写更短的代码。