[php] array ()와 []의 PHP 차이점

PHP 앱을 작성 중이며 오류없이 작동하는지 확인하고 싶습니다.

원래 코드 :

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

echo form_input($data);
?>

다음이 오류없이 작동하거나 어떤 이유로 권장되지 않습니까?

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

차이점이 있습니까?

PHP.net에서 array()대괄호 []가 있는 짧은 배열 방법과 데이터에 대해 다시 살펴 보았지만 확실하지 않습니다.

또한 짧은 PHP 태그 <?= ?>가 에코에 적합합니까? 버전 문제가 있습니까? (php.ini에서 제공됩니다)



답변

다음 []은 PHP> = 5.4에서 지원됩니다.

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

이것은 짧은 구문이며 PHP <5.4에서는 작동하지 않습니다 .


답변

2019 년 현재 []구문이 추가 된 지 7 년 이되었습니다. array()내 의견으로는 오래된 레거시 프로그램을 제외하고는 떨어질 정도로 길다 .


답변

5.3 또는 이전 버전을 사용 []하는 경우 연관 배열뿐만 아니라 배열로 사용할 수 없습니다 . 5.4 이후 버전의 PHP를 사용하는 경우 array()또는 []을 사용하여 배열, 연관 배열 또는 다차원 배열을 만들 수 있습니다 .


답변

그리고에 관한 <?= ?>질문의 일부를 : 그것은 크게되어 있지 적어도되지 2019 년에 눈살을 찌푸렸다.

  1. 좋은 기술 분석 : /software/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>


답변