一、分析
Cannot use a scalar value as an array
这句话的意思是不可将标量作数组来使用。我看了下代码,发现是两个变量重复使用,前面变量值是一个int
类型,之后没有进行unset()
和=array()
来进行声明就直接用变量来做数组了。
这是一个php
基础知识:如果一个变量名(如a
)已经被定义为非数组类型,例如integer
,那么a可以被转为floating poin
t、string
(甚至是object
类型),但不可以是数组,即a[0]=1;
是错误的,php会报出这样的警告Cannot use a scalar value as an array
二、内容
1、错误示例
- 代码
$data = 99;
$data['name'] = '姓名';
- 错误信息
Cannot use a scalar value as an array
2、正确示例
- 代码
$data = 99;
$data = (array)$data; //强转为数组即可
$data['name'] = '姓名';
- 打印
array ( 0 => 99, 'name' => '姓名', )