Existe-il des n-uplets en PHP?
Je sais en Python et d'autres langues, nous avons accès à des tuples pour faciliter au mieux, du point de vue sémantique ou autrement, la structuration des données.
Ma question est: Est PHP sont des n-uplets?
Si non, quel est le plus proche?
Vous devez vous connecter pour publier un commentaire.
PHP seul réel intégré dans la structure de données que les gens utilisent pour tout ce qui est au tableau.
Tableaux en PHP sont toutes les tables de hachage et peut avoir soit numérique ou chaîne index et peuvent contenir n'importe quoi (généralement plus de tableaux).
Il y a quelques arrays qui fonctionnent comme des n-uplets.
Voir
http://us1.php.net/manual/en/language.types.array.php
http://us1.php.net/list
Liste est très pratique pour les retourner plusieurs valeurs à partir d'une fonction.
list($var1, $var2) = $someArray;
initialiser $var1 et $var2Tableaux en PHP peut être utilisé comme un n-uplet:
PHP 7.1 vous pouvez également décompresser comme ceci:
De https://coderwall.com/p/bah4oq:
Vous pouvez passer un tableau d'objets à être utilisé comme un n-uplet. Vous pouvez également stocker des types hétérogènes dans le tableau à la fois, qui imite de très près la fonctionnalité d'un tuple.
Les réponses précédentes sont correctes que vous pouvez simuler les tuples avec les tableaux PHP, mais seulement dans un sens restreint, pas tous les cas d'utilisation. Cela est évident lorsque vous souhaitez utiliser des tuples comme des clés pour une carte. Par exemple. lors de la mise en œuvre d'une machine d'état, les clés de votre table de transition serait tuples:
Si nous avions plus de tuple de soutien en PHP, nous pourrions faire quelque chose comme ceci:
Au contraire, nous devons simuler comme ceci:
La fois d'atteindre le même résultat, mais le premier a une vision claire de la sémantique.
PHP 7.1 Symétrique de la Matrice de Déstructuration a été introduit qui permet d'affecter de la même manière que
list()
comme mentionné dans les commentaires précédents.http://php.net/manual/en/migration71.new-features.php#migration71.new-features.symmetric-array-destructuring