Perl中的数组语法


Array Syntax in Perl

我有一个问题。我必须在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中是什么样子的吗?

showGetInfo获得作为参数传递的值的列表。它们最终在数组@_中。它被分配给新的词法数组@Params。从词汇上说,它只在这个sub中可用。

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

从您展示的调用中,让我们看一下这些参数:

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

是一个数组引用。包含一个值:字符串'Customers/1001/Orders/1001' .

['Comment'],                    #additional order attributes

还是一个数组ref,里面只有一个字符串。

['Street2'],                    #additional address attributes

又一个。

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

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


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

你能帮我告诉我变量@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
);