当我写$var = array('index' => 'some value')
时,它在浏览器页面上显示表单时显示错误:
Notice: Undefined offset: 0 in C:\xampp\htdocs\learn\php\admin\authors\form.html.php on line 28.
但是当我这样写$var[] = array('index' => 'some value')
时,它完美地显示了页面。所以我必须在变量名后加上[]。据我所知,我可以创建一个像$var = array(some array)
这样的数组变量。
那么实际上这两者有什么区别?
答案 0 :(得分:3)
当您编写$ var = array(' index' =>'某些值')时,您无法访问$ var [0],导致此索引无法使用'存在。您必须使用$ var [' index']来访问该值。
使用$ var [] = array(..),将array()推送到$ var,这样它就会创建一个索引为0的新条目。如果你使用var_dump($ var),你将拥有:
array([0] => array(['index'] => 'somevalue'));
答案 1 :(得分:2)
结果不同:
$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处的一个项目;那一项是关联数组。
答案 2 :(得分:1)
如果你这样做.. $var[]=array();
空数组存储为$var
数组中的第一个索引..
Array
(
[0] => Array
(
)
)
如果你这样做.. $var = array();
您只是将它$var
声明为数组。
Array
(
)
答案 3 :(得分:1)
$var[] = array()
是一个二维数组,就像说的那样。
$var = array(); // 1 dimensional array
$var[0] = array();
尝试在两个不同的示例中使用var_export($var)
来查看差异。
答案 4 :(得分:1)
$var = array('index' => 'some value')
表示内部带有数组值的变量
$var[] = array('index' => 'some value')
表示最后一个索引中包含另一个数组的数组。
这与写$var = array(array('index' => 'some value'))