PHP()和[]之间的区别

时间:2013-07-21 12:51:45

标签: php arrays syntax square-bracket

我正在编写一个PHP应用程序,我想确保它没有错误。

原始代码:

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

echo form_input($data);
?>

以下工作是否会出现错误或因某些原因而不推荐使用?

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

有什么不同吗?

我在PHP.net中再次查看了有关array()和带方括号[]的短数组方法的数据,但我不确定。

而且,简短的php标签<?= ?>是否可以回复?有版本问题吗? (提供在php.ini中启用)

5 个答案:

答案 0 :(得分:191)

PHP&gt; = 5.4:

支持以下[]
['name' => 'test', 'id' => 'theID']

这只是一种简短的语法,在 PHP&lt; 5.4它不起作用

答案 1 :(得分:2)

如果使用的是5.3或更早版本,则不能将[]用作数组和关联数组。 如果您使用的是5.4或更高版本的PHP,则可以使用array()[]来创建数组,关联数组甚至多维数组。

答案 2 :(得分:1)

截至2019年,距添加[]语法已有7年了。我认为,除旧的旧版程序外,删除array()的时间已足够。

答案 3 :(得分:0)

关于问题的<?= ?>部分:在很大程度上不被接受,至少在2019年不是如此。

  1. 良好的技术指标:https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php
  2. PSR-1中的注释:文件必须仅使用<?php<?=标签。
  3. TL; DR:没有理由您不能或不应该使用它。

答案 4 :(得分:-2)

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