PHP Разница между array() и []

Я пишу PHP-приложение, и я хочу убедиться, что он будет работать без ошибок.

Исходный код:

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

echo form_input($data);
?>

Будет ли следующая работа без ошибок или не рекомендуется по какой-либо причине?

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

Есть ли разница?

Я снова просмотрел данные о array() и методе коротких массивов с квадратными скобками [] в PHP.net, но я не уверен.

А также, короткий тэг php <?= ?> отлично подходит для эха? Есть ли проблема с версией? (предоставляется разрешено в php.ini)

Ответы

Ответ 1

В PHP >= 5.4 поддерживается []

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

Это короткий синтаксис и PHP < 5.4 он не будет работать.

Ответ 2

Начиная с 2019 года, с момента добавления синтаксиса [] прошло 7 лет. На мой взгляд, этого достаточно, чтобы исключить array() за исключением старых устаревших программ.

Ответ 3

Если вы используете 5.3 или предыдущую версию, вы не можете использовать [] как массив, а также как ассоциативный массив. Если вы используете версию PHP 5.4 или новее, то вы можете использовать array() или [] для создания массива, ассоциативного массива или даже многомерного массива.

Ответ 4

А что касается части вопроса <?= ?>: она в основном не осуждается, по крайней мере, не в 2019 году.

  1. Хорошая техническая поломка: https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php
  2. Примечание в PSR-1: файлы ДОЛЖНЫ использовать только теги <?php и <?=.
  3. TL; DR: нет никаких причин, по которым вы не можете или не должны ими пользоваться.

Ответ 5

Используя php 7.2, мне кажется, что вместо этого я являюсь массивом. Кажется, я работаю с массивом. Разница между {} и []. Мой код

<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>