2013-07-21 10 views
88

Tôi đang viết một ứng dụng PHP và tôi muốn đảm bảo rằng nó sẽ hoạt động mà không có lỗi.Sự khác biệt về PHP giữa mảng() và []

Mã gốc:

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

echo form_input($data); 
?> 

có các công việc sau đây không có lỗi hoặc không được khuyến khích vì một lý do?

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

Có sự khác biệt nào không?

Tôi đã xem lại dữ liệu về array() và phương pháp mảng ngắn với dấu ngoặc vuông [] trong PHP.net nhưng tôi không chắc chắn.

Và cũng có thể, thẻ php ngắn <?= ?> có tốt để lặp lại không? Có vấn đề phiên bản nào không? (Với điều kiện được kích hoạt trong php.ini)

+0

Cú pháp mảng ngắn được giới thiệu trong PHP 5.4, không có sự khác biệt và phương pháp cũ sẽ không bị xóa, do đó, cũng an toàn khi sử dụng. Các thẻ ngắn thường bị cau mày, tôi sẽ không sử dụng chúng. – JimL

+1

Tks, bất kỳ tham chiếu/lý do nào không sử dụng các thẻ ngắn php? –

+7

Mặc dù không thực sự được coi là shorttags, chúng không bị vô hiệu hóa với shorttags tiêu chuẩn afaik vì vậy chúng sẽ được sử dụng cho các âm thanh đơn giản. –

Trả lời

147

Sau [] được hỗ trợ trong PHP> = 5.4:

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

Đây là duy nhất và trong một cú pháp ngắn PHP < 5.4 nó sẽ không làm việc.

+0

Có vẻ như 5.3 .24 cũng hỗ trợ cú pháp này. (không thể xác nhận trực tiếp) – Alberto

+2

có phải là bất kỳ sự khác biệt nào không? – Cooper

+13

@CooPer, Không, trừ khi bạn đếm chiều dài nhập. –