web-dev-qa-db-fra.com

PHP Différence entre array () et []

J'écris une application PHP et je veux m'assurer qu'elle fonctionnera sans erreur.

Le code d'origine:

<?php
$data = array('name' => 'test',
              'id'   => 'theID');

echo form_input($data);
?>

Est-ce que ce qui suit fonctionne sans erreur ou n'est pas recommandé pour une raison quelconque?

<?= form_input(['name' => 'test', 'id' => 'theID']); ?>

Y a-t-il une différence?

J'ai de nouveau examiné les données concernant array() et la méthode de tableau abrégé avec crochets [] dans PHP.net mais je ne suis pas sûr.

Et aussi, la balise php <?= ?> est-elle une bonne chose pour l'écho? Existe-t-il un problème de version? (fourni est activé dans php.ini)

115
Mr.Web

Le code suivant [] est pris en charge dans PHP> = 5.4:

['name' => 'test', 'id' => 'theID']

Ceci est une syntaxe courte seulement et dans PHP <5.4 cela ne fonctionnera pas .

185
The Alpha

En 2019, la syntaxe [] s'était ajoutée il y a 7 ans. C'est assez long pour laisser tomber array() sauf dans les anciens programmes, à mon avis.

6
David Spector

Si vous utilisez la version 5.3 ou précédente, vous ne pouvez pas utiliser [] en tant que tableau ainsi que tableau associatif. Si vous utilisez une version 5.4 ou ultérieure de PHP, vous pouvez utiliser array() ou [] pour créer un tableau, un tableau associatif ou même un tableau multidimensionnel.

2
Abdul Barik

En utilisant PHP 7.2, cela me semble plutôt alors [Je suis un tableau] {Je suis un tableau semble fonctionner}. La différence est entre {} et []. Mon code

<p>
  <label for="post_category"> Cat 1 </label>
  <input type="checkbox" name="post_category{first}" value="cat1">
  <br />
  <label for="post_category{second}"> Cat 2 </label>
  <input type="checkbox" name="post_category" value="cat2">
</p>
0
Mahad Ali