【问题标题】:Shorthand for arrays: is there a literal syntax like {} or []?数组的简写:是否有像 {} 或 [] 这样的文字语法?
【发布时间】:2011-05-15 09:16:05
【问题描述】:

PHP 中数组表示法的简写是什么?

我尝试使用(不起作用):

$list = {};

如果您提供有关 PHP 其他速记的一些信息的链接,那将是完美的。

【问题讨论】:

  • 有很多函数可用于在特殊情况下创建数组(例如 str_split),但我认为这不是您在说的。
  • PHP 没有。但是 phpreboot 和 pihipi 提供了实验性的新语法。

标签: php arrays syntax


【解决方案1】:

【讨论】:

    【解决方案2】:

    在 php 中定义数组的唯一方法是使用 array() 语言结构。 PHP 不像其他一些语言那样有数组字面量的简写。

    【讨论】:

      【解决方案3】:

      更新:
      从 PHP 5.4.0 开始,引入了用于声明数组的 shortened syntax

      $list = [];
      

      上一个答案:

      没有。只有$list = array(); 但是你可以开始添加元素。

      <?php
      $list[] = 1;
      $list['myKey'] = 2;
      $list[42] = 3;
      

      就 PHP 而言,这完全没问题。你甚至不会得到E_NOTICE for undefined variables

      E_NOTICE 级别错误,以防万一 使用未初始化的 变量,但不是在 将元素附加到 未初始化的数组。

      至于速记方法,到处都是。如果您想找到它们,请阅读The Manual

      一些例子,仅供娱乐:

      1. $arr[]array_push 的简写。
      2. foreach 构造
      3. echo $string1, $string2, $string3;
      4. + 的数组串联
      5. elseif的存在
      6. 字符串中的变量嵌入,$name = 'Jack'; echo "Hello $name";

      【讨论】:

      • 我已经专业使用 PHP 多年,我不得不问同事 $results[] = $row; 是什么意思。
      • $results[] = $row;实际上比 array_push($results, $row) 快很多
      • 经过这么长时间,我以为$var = []; 是用PHP7 引入的。不知道它早在 5.4 !
      【解决方案4】:

      不,它被社区提出并拒绝了,所以目前只有数组的语法是array()

      【讨论】:

        【解决方案5】:

        是的,它存在!!

        摘自另一个 Stack Overflow 问题:

        数组的缩短语法已被重新讨论、接受和 即将与 PHP 5.4 一起发布

        用法:

        $list = [];
        

        参考:PHP 5.4 Short Hand for Arrays

        【讨论】:

        • 对于同样犯此错误的任何人,请在键和值之间使用=&gt; 而不是:
        【解决方案6】:

        我只是像这样将字符串分解成一个数组:

        $array = explode(",","0,1,2,3,4,5,6,7,8,9,10");
        

        【讨论】:

          【解决方案7】:

          也可以像这样在 [ ] 中定义内容:

            $array = ['vaue1', 'value2', 'key3'=>['value3', 'value4']];
          

          这仅适用于php5.4及更高版本。

          【讨论】:

          • 我认为最好写5.4及以上(在5.6可以工作)。请注意,这是将数组声明为类常量的唯一有效方法(例如 const x = ["a", "b"];),因为 const x=array(....) 不起作用
          【解决方案8】:

          您可以按如下方式声明您的数组:

          $myArray1 = array(num1, num2, num3);
          $myArray2 = array('string1', 'string2', 'string3');
          $myArray3 = array( 'stringkey1'=>'stringvalue1', 'stringkey2'=>'stringvalue2');
          $myArray4 = array( 'stringkey1'=>numValue1, 'stringkey2'=>numValue2);
          $myArray5 = array( numkey1=>'stringvalue1', numkey2=>'stringvalue2');
          $myArray6 = array( numkey1=>numValue1, numkey2=>numValue2);
          

          您可以拥有任意数量的嵌入式数组。

          【讨论】:

          • 这将产生关于未定义常量的通知。
          猜你喜欢
          • 2021-03-29
          • 1970-01-01
          • 2010-10-02
          • 2012-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-03
          相关资源
          最近更新 更多