我有一个简单的(在我看来)问题。我尝试在php中初始化一个数组,如下所示:
array(
'type' => 'hidden',
'id' => "request_params$suffix",
'name' => "request_params$suffix",
'value' => "?rule_id=$rule_id&cur_instr=$cur_instr&dev_id=$dev_id&cmd_id=$cmd_id" + ($disabled? '&disabled' : ''))
此构造作为函数调用中的参数传递。所有变量都已定义。结果我得到type
,id
和name
已初始化,但value
初始化为0.如果我注释掉+ ($disabled? '&disabled' : '')
那么value
也被初始化了。我试图将所有表达式括在括号中,结果相同 - 用0初始化。
有人有任何想法吗?
答案 0 :(得分:1)
要连接字符串,请使用点
array(
'type' => 'hidden',
'id' => "request_params$suffix",
'name' => "request_params$suffix",
'value' => "?rule_id=$rule_id&cur_instr=$cur_instr&dev_id=$dev_id&cmd_id=$cmd_id" . ($disabled? '&disabled' : ''))
答案 1 :(得分:1)
您正在使用算术运算符来连接两个字符串,即+
而不是.
array(
'type' => 'hidden',
'id' => "request_params$suffix",
'name' => "request_params$suffix",
'value' => "?rule_id=$rule_id&cur_instr=$cur_instr&dev_id=$dev_id&cmd_id=$cmd_id" . ($disabled? '&disabled' : ''))
因为您正在使用+
尝试添加数字,因为它无法找到它假设两个变量都为0 0+0=0
。
答案 2 :(得分:1)
我认为代码会帮助你......
$disabled='';
$suffix='suffix';
$array=array(
'type' => 'hidden',
'id' => 'request_params'.$suffix,
'name' => 'request_params'.$suffix,
'value' => '?rule_id=$rule_id&cur_instr=$cur_instr&dev_id=$dev_id&cmd_id=$cmd_id'.($disabled? '&disabled' : '')
);
var_dump($array);