Le moyen le plus court de convertir tous les types PHP en chaîne
P粉369196603
P粉369196603 2023-09-05 15:34:44
0
1
960
<p>J'écris un système général qui, je l'espère, sera un jour applicable à des domaines tels que la médecine (c'est-à-dire qu'il sera « scientifique »). </p> <p>Je pense que la meilleure façon est de représenter toutes les données en php avec des chaînes (true sera "true", false sera "false" et ainsi de suite). La raison en est qu'en PHP, toute valeur a une représentation sous forme de chaîne unique (comme le code php lui-même). </p> <p>Je poste cette question pour accélérer le processus de conception de ce programme. </p> <p>Certaines valeurs sont facilement converties en chaînes : nombres, booléens, etc. </p> <p>Certains ne sont pas faciles : objets, tableaux, ressources. </p> <p>Je pense que le format de transfert d'objets et de tableaux est essentiellement json, mais je ne sais pas s'il correspond exactement. C'est mieux que ce que j'ai actuellement (rien), mais au moins à un moment donné, j'aimerais l'affiner jusqu'à un certain point. </p> <p>Des idées ? </p>
P粉369196603
P粉369196603

répondre à tous(1)
P粉615886660

C'est en effet un objectif ambitieux ; si ambitieux qu'il serait insensé d'essayer.

Maintenant, vous ne voulez probablement pas vraiment dire « peut tout faire pour n'importe qui », mais votre incapacité à fixer des limites lorsque vous essayez de signifier cela est pertinente pour votre question. Cela rend inutilement difficile la recherche d’un format de sérialisation.

Par exemple, vous avez mentionné les Ressources, que PHP utilise pour des choses comme les connexions à la base de données, l'ouverture des descripteurs de fichiers, etc. Ce sont des pointeurs éphémères vers quelque chose qui vit pendant un certain temps puis disparaît, et leur sérialisation n'est pas seulement non prise en charge en PHP, mais n'a également presque aucun sens.

Plutôt que d'essayer de couvrir « tout », vous devez réfléchir aux types de données que vous devez réellement traiter. Peut-être utiliserez-vous principalement des classes définies dans le système, afin de pouvoir définir n'importe quel format dans lequel vous souhaitez les représenter. Peut-être souhaitez-vous traiter une collection arbitraire de paires clé-valeur, sous la forme d'un tableau PHP. Vous voudrez peut-être laisser de la place à de futures extensions, mais il s'agit simplement de flexibilité du format, pas d'une réponse concrète pour le moment.

De là, vous pouvez rechercher le bien que vous souhaitez et magasiner :

  • JSON est un format de « plus petit dénominateur commun » très populaire. Son principal inconvénient est qu'il n'a aucun moyen de représenter des types personnalisés spécifiques, tout doit être constitué de listes et de paires clé-valeur (j'aime dire "JSON n'a pas de classes").
  • XML est un peu moins populaire qu'avant, mais il est très puissant et peut être utilisé pour définir des langages et des types personnalisés. C'est assez verbeux, mais se compresse bien - de nombreux formats de fichiers modernes sont en fait des archives zip contenant des fichiers XML compressés.
  • Le format de sérialisation PHP ne convient en réalité qu'à des fins intégrées à court terme, telles que la mise en cache des données. C'est assez concis et étroitement lié au système de types de PHP, mais il existe des problèmes de sécurité si l'utilisateur a une influence sur les données, comme décrit dans la page de manuel de non-sérialisation.
  • Il existe des formats encore plus concis qui ne se limitent pas à une représentation lisible par l'homme, si cela est un facteur pertinent pour vous.

Évidemment, la liste est interminable...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal