172

我正在编写一个 PHP 应用程序,我想确保它不会出错。

原代码:

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

echo form_input($data);
?>

以下是否可以正常工作或由于某种原因不推荐?

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

有什么区别吗?

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

而且,短 php 标签<?= ?>是否适合回显?有版本问题吗?(提供在 php.ini 中启用)

4

5 回答 5

248

[]PHP >= 5.4 支持以下内容:

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

这只是一个简短的语法,在PHP < 5.4 中它不起作用

于 2013-07-21T12:55:21.680 回答
31

[]到 2019 年,语法加入已经 7 年了。array()在我看来,除了旧的遗留程序之外,这已经足够长了。

于 2019-06-25T13:20:45.237 回答
6

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

于 2018-08-11T06:55:29.053 回答
3

关于问题的一部分:至少在 2019 年,<?= ?>它基本上没有被反对。

  1. 一个很好的技术细分:https ://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php
  2. PSR-1中的注释:文件必须仅使用<?php<?=标签。
  3. TL;DR:你没有理由不能或不应该使用它。
于 2019-10-17T04:53:52.677 回答
-25

使用 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>
于 2019-01-11T07:23:19.283 回答