7
votes

Syntaxe en ligne JSON en PHP

php serait beaucoup plus frais si vous pouviez écrire des choses comme ceci:

$array = [2, 3, 5];

$object = { "name" : "Harry", "age" : 23, "cats" : ["fluffy", "mittens", "whiskers"]};


4 commentaires

PHP utilise des tableaux pour de telles choses. Trouvez-vous votre chemin plus facile?


Je l'ai voulu depuis longtemps. Voyant celui-ci, parmi beaucoup, des raisons inueuses données à la décision de choisir \ au lieu de :: pour l'opérateur d'espace de noms était la difficulté perçue de l'analyse : : correctement, je doute que cela puisse être mis en œuvre facilement. Une autre raison donnée était que \ était déjà familier aux utilisateurs de Windows en tant que caractère de séparation, comme si cela était important.


@Hrishi, même si JSON s'est traduit par des tableaux associatifs, ce serait bien. Je préfère fortement la syntaxe TERSE JSON sur le tableau (=>)


L'ajout de cela à PHP n'est pas une option. Mais il pourrait y avoir des éditeurs de texte qui peuvent faire plus de pliage de code élaboré (transformation d'affichage) au lieu de la sélection de la syntaxe.


8 Réponses :


0
votes

Un mélange de tableaux associatifs et indexés numériquement vous obtient généralement assez près: xxx

à mon avis (surtout en raison de l'existence json_encode ) ce n'est pas de manière significative différente écrire un Json droit sur quelque chose comme ce qui précède.


0 commentaires

1
votes

Si vous voulez écrire quelque chose qui n'est pas PHP, utilisez quelque chose qui n'est pas PHP. Sinon, utilisez tableau () code>.

$array = array(2, 3, 5);

$object = array('name' => 'Harry', 'age' => 23, 'cats' => array('fluffy', 'mittens', 'whiskers'));


2 commentaires

Changements de langues. PHP n'avait pas de cours ou de fermetures, maintenant. Je trouve la syntaxe de tableau (=>) pour être inutilement verbeuse. J'aime [] et {:}


Eh bien, PHP a adopté la notation [] pour les tableaux, qui est syntaxiquement meilleure que tableau () , donc nous aurons probablement la notation d'objet JSON aussi.



0
votes

PHP ne gère pas JSON - Whiwch est la raison pour laquelle il vous donne les outils pour encoder / décoder.

Je vous êtes désespéré de "écrire" de cette manière, il suffit de coller des citations autour de lui: P>

$object = '{ "name" : "Harry", "age" : 23, "cats" : ["fluffy", "mittens", "whiskers"]}';


0 commentaires

0
votes

Comme les personnes ont déclaré ci-dessus, différentes langues ont une syntaxe différente - si vous n'aimez pas la syntaxe de PHP, vous pourriez envisager d'envisager d'autres langues.

JSON signifie " JavaScript NOTATION D'ACTION" - Peut-être que ce que vous voulez, est le javascript côté serveur. Il y a une vaste gamme d'options JavaScript côté serveur - JSGI / Jack (Narwhal), Ringojs, Flusspferd, Node.Js, V8CGI, etc. http://wiki.commonjs.org/


5 commentaires

Je ne pense pas que la sémantique / la nommée est une bonne raison de ne pas avoir la fonctionnalité. Appelez cela phpon si vous voulez. Je suis juste en train de regarder les options pour améliorer php avec syntaxe plus serrée.


Je n'ai pas dit que le nom était une raison pour ne pas l'ajouter à PHP - je remarquais simplement l'origine de la syntaxe dans une langue que vous pouvez déjà utiliser sur le côté serveur.


La liste et les dictionnaires de Python ont une syntaxe similaire. Pour que je trouve que Néater et plus élégant que le tableau () construction.


@Aircule, @bill - Je suis un peu confus, pourquoi vous êtes apparemment opposé à quelque chose que je n'ai pas dit du tout - je n'ai dit nulle part où ajouter une syntaxe JSON à PHP serait une mauvaise idée, personnellement je Faites comme l'idée en théorie. J'essaie simplement de suggérer des alternatives utiles si l'OP souhaite utiliser cette syntaxe sur le côté serveur aujourd'hui (plutôt que d'attendre que Zend change de l'esprit).


Désolé, quand vous avez écrit "JSON signifie" notation d'objet JavaScript "" Je pensais que vous étiez snotty et faire un argument muet. Malentendu. J'aimerais utiliser les JS côté serveur, mais j'ai commencé sur un projet avec une grande base de code existante, il est donc possible de changer de langue n'est pas une option. Merci pour votre contribution




7
votes

Vous pouvez simplement envelopper votre DataStructure dans json_decode et être fait avec elle: xxx

Oui, il ne fait pas Typechecking tant que l'instruction n'est pas exécutée, et vous aurez un peu de Un problème de manipulation de citations multiples, mais vous pouvez toujours utiliser un hérédoc pour cela.


2 commentaires

Cela renoncerait à toute syntaxe mettant en évidence votre éditeur peut faire et faire déboguer autant plus fort. Vous aurez également plus de problèmes avec des citations d'échappement. Semble avoir plus de problèmes que ça vaut la peine. Et pour des tableaux simples comme Array (2, 3, 5) C'est en fait plus Verbose.


Oh, je ne néglige pas tous les inconvénients.



4
votes

mise à jour: tout ce ci-dessous est devenu un peu discutable avec PHP 5.4; Nous avons maintenant [..] syntaxe de tableau.


Oui, la syntaxe du tableau de PHP est trop verbeuse et laide et je souhaite aussi que ce soit plus terres.

Non, ce ne serait probablement pas une bonne idée de tenter de changer cela pour les versions existantes de PHP, car c'est une fonctionnalité qui devrait être cuite à l'analyseur. Cela signifie que vos applications PHP ne s'exécuteraient que sur des versions compilées personnalisées de PHP, ce qui rend votre application beaucoup moins portable et annule ainsi l'une des bonnes choses sur PHP.

Vous voudrez peut-être essayer quelque chose comme un compilateur, qui compilait votre syntaxe de tableau personnalisée en syntaxe normale avant d'exécuter le code. Si vous êtes allé cela bien cependant, en utilisant une langue entièrement différente pour commencer, peut être le meilleur choix.

Essayez de faire pression pour une syntaxe de type JavaScript pour PHP 6.x. Jusque-là, écrivez simplement tableau () . :)


0 commentaires