Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组转换为ColdFusion语法_Php_Arrays_Coldfusion - Fatal编程技术网

将PHP数组转换为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

我有下面一段PHP代码,它将值存储在数组中,但我正在用ColdFusion重写应用程序,不知道在ColdFusion中执行相同函数的语法是什么

$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但如果这真的能提高可读性,那就相当有争议了;而且,当您理解了自己在做什么时,您可以随时学习编写更短的代码。