我有一个简单的(在我看来)问题。我尝试在 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 初始化。
有人知道吗?
您正在使用算术运算符来连接两个字符串,即 +
而不是.
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
.
要连接字符串,请使用点
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' : ''))
我认为代码会对你有很大帮助......
$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);