programing

PHP에 튜플이 있습니까?

telebox 2023. 9. 14. 22:29
반응형

PHP에 튜플이 있습니까?

Python과 다른 언어에서는 의미론적으로 또는 다른 방식으로 데이터의 구조화를 보다 용이하게 하기 위해 튜플에 접근할 수 있다는 것을 알고 있습니다.

제 질문은 PHP에 튜플이 있나요?

그렇지 않다면, 가장 가까운 시설은 어디입니까?

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"

PHP 7.1부터는 다음과 같이 풀 수도 있습니다.

[$a, $b, $c] = $x;

PHP는 사람들이 모든 것을 위해 사용하는 유일한 실제 내장 데이터 구조입니다.

PHP의 배열은 모두 해시 테이블이며 숫자 또는 문자열 인덱스를 가질 수 있으며 무엇이든 포함할 수 있습니다(일반적으로 더 많은 배열).

튜플처럼 작동하는 배열 구조체가 몇 개 있습니다.

http://us1.php.net/manual/en/language.types.array.php

http://us1.php.net/list

목록은 함수에서 여러 값을 반환할 때 매우 편리합니다.

PHP 7.1 Symmetric Array Destructuring은 다음과 같은 방법으로 할당할 수 있도록 도입되었습니다.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'

http://php.net/manual/en/migration71.new-features.php#migration71.new-features.symmetric-array-destructuring

PHP 배열로 튜플을 시뮬레이션할 수 있다는 점에서 앞의 답변이 맞지만, 모든 사용 사례가 아닌 제한된 의미에서만 가능합니다.이는 튜플을 지도의 키로 사용하고자 할 때 명확하게 나타납니다.예를 들어 상태 머신을 구현할 때 전환 테이블의 키는 튜플(tuple)이 됩니다.

(currState, Event) -> newState

PHP에서 적절한 튜플 지원이 있다면 다음과 같은 작업을 수행할 수 있습니다.

$trTable = [
    ['currState', 'fooEvent'] => 'fooState',
    ['currState', 'barEvent'] => 'barState',
    ...
];

대신 다음과 같이 시뮬레이션해야 합니다.

$trTable = [
    'currState' => [
        'fooEvent' => 'fooState',
        'barEvent' => 'barState',
    ],
    ...
];

둘 다 같은 결과를 얻지만 첫 번째는 명확한 의미론을 가지고 있습니다.

https://coderwall.com/p/bah4oq 에서:

function foo()
{
    return array('foo', 'bar');
}

list($a, $b) = foo();

튜플처럼 사용할 객체 배열을 전달할 수 있습니다.이기종 유형을 배열에 한 번에 저장할 수도 있으므로 튜플의 기능을 매우 밀접하게 모방할 수 있습니다.

언급URL : https://stackoverflow.com/questions/22083760/are-there-tuples-in-php

반응형