我有一个数组:
$args = array(
'n' => 10,
'd' => $args['n']*3,
);
Notice: Undefined variable: args in ...
为什么我不能那样做?
修改 我应该这样做吗?
$args = array(
'n' => 10,
);
$args = array(
'd' => $args['n']*3,
);
有点可怕:P
答案 0 :(得分:0)
这是一个鸡/蛋问题:
$args = array(...);
仅在解析完ENTIRE数组定义后返回并将新数组放入$ args。因此,当您尝试在其自己的数组定义中访问$ args时,它将不会被定义。
$args = array(0 => $args);
^^^^^--undefined variable, not yet available for use.
答案 1 :(得分:0)
PHP首先必须创建整个数组,然后才能将结果分配给$ args属性。这意味着,在创建数组时,$ args的值尚未设置(或者是之前的任何值)。
您必须一次设置一个元素:
$args = array( 'n' => 10 );
$args['d'] = $args['n'] * 3;
或手动进行计算:
$args = array( 'n' => 10, 'd' => 10 * 3 );
或者像这样:
$a = 10;
$args = array( 'n' => $a, 'd' => $a * 3 );
答案 2 :(得分:0)
您收到未定义的变量错误,因为当您尝试在数组中使用$args
时未定义$args = array(
'n' => ($n = 10),
'd' => $n * 3
);
。您可以使用临时变量解决此问题:
{{1}}