'PHP Difference between array() and []
I'm writing a PHP app and I want to make sure it will work with no errors.
The original code:
<?php
$data = array('name' => 'test',
'id' => 'theID');
echo form_input($data);
?>
Would the following work with no errors or is not recommended for some reason?
<?= form_input(['name' => 'test', 'id' => 'theID']); ?>
Are there any difference?
I've looked again the data about array() and the short array method with square brackets [] in PHP.net but I'm not sure.
And also, is the short php tag <?= ?> fine for echoing? Is there any version issue? (provided is enabled in php.ini)
Solution 1:[1]
Following [] is supported in PHP >= 5.4:
['name' => 'test', 'id' => 'theID']
This is a short syntax only and in PHP < 5.4 it won't work.
Solution 2:[2]
As of 2022, it has been 10 years since the [] syntax was added. That is long enough to drop array() except in old legacy programs, in my opinion.
Solution 3:[3]
If you are using 5.3 or previous version then you can't use [] as an array as well as associative array.
If you are using 5.4 or later version of PHP then you can use either array() or [] to create an array, associative array or even multidimensional array.
Solution 4:[4]
And regarding the <?= ?> part of the question: it is largely not frowned upon, at least not in 2019.
- A good technical breakdown: https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php
- A note in PSR-1: Files MUST use only
<?phpand<?=tags. - TL;DR: There is no reason you cannot or should not use it.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Déjà vu |
| Solution 2 | Movahhedi |
| Solution 3 | codeepic |
| Solution 4 | Aydin4ik |
