在php中初始化数组


Initializing an array in php

下面的代码有什么问题?

<?php
$login_user[] = array ();
array_push($login_user, "cat" );
array_push($login_user, "dog" );
print_r($login_user);
?>

我期望得到一个数组("cat", dog")。相反,我意外地得到一个空数组作为第一个元素:

Array ( [0] => Array ( ) [1] => cat [2] => dog )

[]意味着$login_user现在是一个数组,您正在创建一个数组作为它的第一个元素。清除[]以解决此问题。

<?php
    $login_user = array();
    array_push($login_user, "cat" );
    array_push($login_user, "dog" );
    print_r($login_user);
?>
演示

使用下面的代码

$login_user[] = array();

您将压入$login_user和空array(),因此$login_user的第一个元素将是一个空数组。查看PHP数组push

通过PHP数组的官方文档你可以看到有两种方法来初始化一个空数组

  • 使用$my_new_array = array();
  • 使用其他等效的短表示法$my_new_array = [];作为PHP>= 5.4
所以你的代码应该是这样的
$login_user = []; //or $login_user = array()
array_push($login_user, "cat" ); //or $login_user[] = "cat"
array_push($login_user, "dog" ); //or $login_user[] = "dog"
print_r($login_user);

编码快乐!