【问题标题】:What could be the equivalent of a PHP array in ColdFusion?ColdFusion 中的 PHP 数组有什么等价物?
【发布时间】:2014-05-09 03:03:33
【问题描述】:

在学习一些教程时,我看到 PHP 数组与 ColdFusion 数组有很大不同,而且 PHP 没有结构。我需要知道 ColdFusion 中可以使用以下 PHP 代码的哪一部分:

public $colors = array(
    array(27,78,181), // blue
    array(22,163,35), // green
    array(214,36,7),  // red
);

public $fonts = array(
    'Antykwa'  => array('spacing' => -3, 'minSize' => 27, 'maxSize' => 30, 'font' => 'AntykwaBold.ttf'),
    'Candice'  => array('spacing' =>-1.5,'minSize' => 28, 'maxSize' => 31, 'font' => 'Candice.ttf'),
    'DingDong' => array('spacing' => -2, 'minSize' => 24, 'maxSize' => 30, 'font' => 'Ding-DongDaddyO.ttf'),
    'Duality'  => array('spacing' => -2, 'minSize' => 30, 'maxSize' => 38, 'font' => 'Duality.ttf'),
    'Heineken' => array('spacing' => -2, 'minSize' => 24, 'maxSize' => 34, 'font' => 'Heineken.ttf'),
    'Jura'     => array('spacing' => -2, 'minSize' => 28, 'maxSize' => 32, 'font' => 'Jura.ttf'),
    'StayPuft' => array('spacing' =>-1.5,'minSize' => 28, 'maxSize' => 32, 'font' => 'StayPuft.ttf'),
    'Times'    => array('spacing' => -2, 'minSize' => 28, 'maxSize' => 34, 'font' => 'TimesNewRomanBold.ttf'),
    'VeraSans' => array('spacing' => -1, 'minSize' => 20, 'maxSize' => 28, 'font' => 'VeraSansBold.ttf'),
);

PHP 的另一部分是 foreach 循环,例如:

foreach($list as key=>$value) {

}

我认为这可以作为结构上的循环来完成,但我不确定。

【问题讨论】:

  • cfloop 上的文档告诉您如何循环遍历数组、查询、列表甚至结构。

标签: php coldfusion


【解决方案1】:

第一个例子只是类似于 CFML 数组,例如:

colors = [
    [27,78,181], // blue
    [22,163,35], // green
    [214,36,7]  // red
];

虽然 PHP 确实没有称为“结构”的东西,但它有一个关联数组,这对于所有意图和目的来说都是一样的。你的后一个例子就是其中之一。 CFML equiv(缩写)将是:

fonts = {
    'Antykwa' = {'spacing' = -3, 'minSize' = 27, 'maxSize' = 30, 'font' = 'AntykwaBold.ttf'}
}

注意:您不需要在 CFML 中引用键名,但如果您不这样做,ColdFusion 会将它们全部转换为大写(我认为 Railo 不会这样做,并且 CF11 中有一个设置可以阻止这种情况也发生)。请注意,在 CF 中,不保留结构中键的顺序; 可以在 Railo 中,如果使用链接结构(我会留给你查找)

在 CFML 中循环数组和结构有几个选项:

for (element in array){

}

for (key in struct){
    value = struct[key];
}

也可以使用迭代函数:

array.each(function(index, value, array){
});

struct.each(function(key, value, struct){

});

还有filter()map()等其他迭代方式。 Railo 4.2 和 COldFusion 11 有新版本。每个版本的早期版本都具有 each() 的无头函数,例如:arrayEach(array, callback)structEach(struct, callback)

这一切都在文档中。

【讨论】:

    猜你喜欢
    • 2012-11-29
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2011-04-23
    • 1970-01-01
    • 2012-09-14
    相关资源
    最近更新 更多