Разница 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)

2 ответа

Решение

Следующий [] поддерживается в PHP >= 5.4:

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

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

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

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

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

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

Используя 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>
Другие вопросы по тегам