suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php $t1 $t2

如图:
我并没有声明 $t1 和 $t2 两个变量
为什么它可以使用?没有任何报错,手册上也没说为什么

淡淡烟草味淡淡烟草味2796 Tage vor556

Antworte allen(3)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-16 13:11:14

    先上图:

    手册说的很明白,把数组中的值赋给一组变量。

    你的问题:

    如图:
    我并没有声明 $t1 和 $t2 两个变量
    为什么它可以使用?没有任何报错,手册上也没说为什么

    所以我理解你的问题想表达两方面意思:

    1. 没有声明变量

    2. 使用没有声明的变量不报错

    针对第一点,PHP是弱类型语言,而且变量不需要在使用之前声明,你也可以理解为给变量赋值的时候同时声明(初始化)了变量。
    那么,list的用法手册已经说的很清楚,将数组中的值赋给一组变量,也就是你运行完list($t1, $t2) = explode(' ', microtime())的时候,已经给 $t1$t2 赋值成功。

    针对第二点,对于没有声明的变量(也就是没有初始化的变量),使用的话当然报错。
    你可以试试直接 echo $undefined;$undefined第一次出现在这里,不出意外情况,肯定报个 Notice 级别的错误(请首先正确设置错误级别以及显示错误)。

    所以你第二条疑问不是使用了未声明的变量不报错,而是你使用了 list() 已经帮你赋值过的变量了。

    望采纳!谢谢。

    ======= Update ======

    上面图片也标注了PHP版本对于list()的使用区别,使用时请注意!

    Antwort
    0
  • 某草草

    某草草2017-05-16 13:11:14

    list 函数的作用就是把数组中的值赋给一些变量,比如:

    list($a, $b, $c) = array(1, 2, 3);

    那么$a的值就是1,$b和$c的值就是2和3

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:11:14

    list($t1,$t2)

    上面的意思的将右边的数组的键值依次值给$t1 $t2

    Antwort
    0
  • StornierenAntwort