php - $var[] = array() 和 $var = array() 有什么区别?

标签 php arrays

当我编写 $var = array('index' => 'some value') 时,在浏览器页面上显示表单时显示错误:

注意:C:\xampp\htdocs\learn\php\admin\authors\form.html.php 第 28 行中未定义偏移量:0。

但是当我像这样写 $var[] = array('index' => 'some value') 时,它完美地显示了页面。所以我必须把 [] 放在变量名之后。据我所知,我可以创建这样的数组变量 $var = array(some array)

那么这两者到底有什么区别呢?

最佳答案

结果不同:

$var = array('index' => 'some value');
var_dump($var);

// array(1) {
//   ["index"]=>
//   string(10) "some value"
// }

$var[] = array('index' => 'some value');
var_dump($var);

// array(1) {
//   [0]=>
//   array(1) {
//     ["index"]=>
//     string(10) "some value"
//   }
// }

如果仔细观察,第一个示例创建了一个具有一对键的关联数组。第二个示例创建一个数组,其中包含索引 0 处的一项;那一项是关联数组。

关于php - $var[] = array() 和 $var = array() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167168/

相关文章:

php - mysql查询新读者可用的书籍

c++ - 当一个函数有一个特定大小的数组参数时,为什么它被替换为一个指针?

php - 使用正确的 MIME 类型提供 XHTML

php - 花茎问题

php - PHP语法错误

c - 在 C 中初始化数组时出错

c# - 在构造函数中初始化数组类变量

php - 当数据库中的变量为 null 或为空时显示 "Not Provided"

Javascript:将数组放入文本字​​段

c - 二维数组 - 每行都被下一行覆盖