Dam*_*ack 34
php中的数组可以像元组一样使用:
// one dimensional mixed data
$x = [1, 2, "hello"];
// multidimensional third element
$y = [1, 2, [3, 4, 5]];
// assigning to variables (list unpacking)
list($a, $b, $c) = $x; //$a is 1, $b is 2, $c is "hello"
Dan*_*ams 33
PHP唯一真正内置的数据结构是人们用于所有内容的数组.
PHP中的数组都是哈希表,可以有数字或字符串索引,可以包含任何内容(通常是更多数组).
有一些数组结构像元组一样工作.
看到
http://us1.php.net/manual/en/language.types.array.php
List非常方便从函数返回多个值.
从 PHP 7.1 开始,引入了对称数组解构,它允许您以与之前评论中提到的相同方式进行分配list()。
// list() style
list($id1, $name1) = [1, 'Hello']; // Same as $id1 = 1 and $name1 = 'Hello'
// [] style
[$id2, $name2] = [2, 'World']; // Same as $id2 = 2 and $name2 = 'World'
小智 5
前面的答案是正确的,因为您可以使用 PHP 数组模拟元组,但只是在有限的意义上,并非所有用例。当您想使用元组作为映射的键时,这一点很明显。例如。实现状态机时,转换表中的键将是元组:
(currState, Event) -> newState
如果 PHP 中有适当的元组支持,我们可以这样做:
$trTable = [
    ['currState', 'fooEvent'] => 'fooState',
    ['currState', 'barEvent'] => 'barState',
    ...
];
相反,我们必须像这样模拟它:
$trTable = [
    'currState' => [
        'fooEvent' => 'fooState',
        'barEvent' => 'barState',
    ],
    ...
];
两者都达到相同的结果,但第一个具有清晰的语义。