Perl中的数组语法

时间:2014-08-20 08:32:14

标签: php arrays perl syntax

我有一个问题。我必须在php中编写一个部分但是只有这个Perl示例并且不了解确切的语法:

#showGetInfo(
#   ['Customers/1001/Orders/1001'], #orders paths
#   ['Comment'],                    #additional order attributes
#   ['Street2'],                    #additional address attributes
#   ['TransID','Weight']            #additional lineitem attributes
#);

在文件的另一部分中说:

sub showGetInfo {
    my @Params = @_;
    my $ahResults = $OrderService->getInfo(@Params)->result;

    [...]
}

由于#只是一个评论,我需要将结构复制到php。

我认为有阵列创建,甚至可能是另一个阵列中的某些阵列,但我不明白特别是如何在这里构建阵列结构。你能帮助我并告诉我@Params在php中的变量是什么样的吗?

2 个答案:

答案 0 :(得分:4)

showGetInfo获取作为参数传递的值的列表。那些最终在数组@_中。这会分配给新的lexical数组@Params。词汇表示,它仅适用于sub

接下来,在对象getInfo()上调用方法$OrderService。它传递的是与shoGetInfo相同的参数。

在您展示的电话中,让我们看看这些参数:

['Customers/1001/Orders/1001'], #orders paths

这是array reference。它包含一个值:字符串'Customers/1001/Orders/1001'

['Comment'],                    #additional order attributes

再次,一个数组引用,其中包含一个字符串。

['Street2'],                    #additional address attributes

另一个。

['TransID','Weight']            #additional lineitem attributes

此数组引用包含两个条目。一个是字符串'TransID',另一个是'Weight'


要将其转换为PHP,您可以使用普通数组。不需要像PHP中的Perl那样的引用。

答案 1 :(得分:2)

  

你能帮助我并告诉我@Params在php中的变量是什么样的吗?

在php $Params中就像perl,数组数组

array(
  array('Customers/1001/Orders/1001'), #orders paths
  array('Comment'),                    #additional order attributes
  array('Street2'),                    #additional address attributes
  array('TransID','Weight')            #additional lineitem attributes
);