Php 警告:不能将标量值用作数组
此函数返回我:Php 警告:不能将标量值用作数组,php,syntax-error,Php,Syntax Error,此函数返回我: 警告:无法将标量值用作 问题出在回程线上。删除此行后,警告将消失 我测试了几个选项。有人知道问题出在哪里吗?我想应该是这样的:- function convert_realsoft($type, $input_id) { $dial_arr = array(); switch ($type) { case 'action': $dial_arr = array( 'lorem' => 1, 'ipsu
警告:无法将标量值用作 问题出在回程线上。删除此行后,警告将消失
我测试了几个选项。有人知道问题出在哪里吗?我想应该是这样的:-
function convert_realsoft($type, $input_id) {
$dial_arr = array();
switch ($type) {
case 'action':
$dial_arr = array(
'lorem' => 1,
'ipsum' => 2,
'dolor' => 3,
);
return $dial_arr[$input_id];
break;
case 'desk':
$dial_arr = array(
'sit' => 1,
'amet' => 2,
);
return $dial_arr[$input_id];
break;
...and next case...
}
}
我认为应该是这样的:-
function convert_realsoft($type, $input_id) {
$dial_arr = array();
switch ($type) {
case 'action':
$dial_arr = array(
'lorem' => 1,
'ipsum' => 2,
'dolor' => 3,
);
return $dial_arr[$input_id];
break;
case 'desk':
$dial_arr = array(
'sit' => 1,
'amet' => 2,
);
return $dial_arr[$input_id];
break;
...and next case...
}
}
进行函数调用时,
$input\u id
参数的确切输入是什么?它是整数还是字符串?您可以发布一个示例函数调用吗
我的猜测是,您试图使用整数值来查找数组中的值,但数组需要一个键来根据您在函数中创建数组的方式获取值
另外,我会这样写你的回报声明(我在之前的评论中提到过这一点)
进行函数调用时,
$input\u id
参数的确切输入是什么?它是整数还是字符串?您可以发布一个示例函数调用吗
我的猜测是,您试图使用整数值来查找数组中的值,但数组需要一个键来根据您在函数中创建数组的方式获取值
另外,我会这样写你的回报声明(我在之前的评论中提到过这一点)
这到底发生在哪一行?请注意,没有必要在每种情况下都放置相同的
return
语句,只需将它放在函数的末尾。请确保$input\u id有效(即ipsum、lorem等之一)警告:不能在drupal\u render()中将标量值用作数组(第5859行在/data/d/i/site.com/web/includes/common.inc中)。但这是cms中的文件。没有我的文件…你能在那一行发布代码吗?这到底发生在哪一行?旁注,没有必要在每种情况下都放置相同的return
语句,只需将其放在函数的末尾。确保$input\u id有效(即ipsum、lorem等之一)警告:不能在drupal_render()中使用标量值作为数组(在/data/d/i/site.com/web/includes/common.inc中的第5859行)。但这是cms中的文件。没有我的文件…你能在那一行发布代码吗?为什么不干脆返回数组('lorem'=>1,…)
,那么为什么函数有$input\u id呢?我刚才看到一个问题,在返回语句中使用了未初始化或不存在的数组索引。我不是问这个问题的人。请向相关人员询问这个问题……这将给出一个通知:未定义的偏移量:--$input\u id的值--
。他看到的警告是一种$a=1;$a['test'];//$a不是数组
$input\u id是数组中的一个值。lorem、ipsum或dolor。我想返回这个值的数字。@user3078306在这种情况下,函数参数和相关代码中不需要$input\u id,通过其索引值返回整个数组外部使用。。为什么不直接返回数组('lorem'=>1,…)
,那么为什么函数有$input\u id呢?我刚才看到一个问题,在返回语句中使用了未初始化或不存在的数组索引。我不是问这个问题的人。请向相关人员询问这个问题……这将给出一个通知:未定义的偏移量:--$input\u id的值--
。他看到的警告是其中一种$a=1;$a['test']]/$a不是数组
$input\u id是数组中的一个值。lorem、ipsum或dolor。我想返回这个值的数字。@user3078306在这种情况下,函数参数和相关代码中不需要$input\u id,而是通过其索引值返回整个数组外部使用。@convert\u realsoft('action',get_select_id($node_arr,$field_object_type'))函数get_select_id($type_arr,$field_name){$get_select_id=field_get_items('node',$type_arr,$field_name');返回$get_select_id[0]['value']}感谢您发布其他代码,我已更新了您的原始帖子以包含该代码。以后请尝试更具描述性,这将帮助其他人更快地帮助您。:)那么,现在我已经看到了您的其他代码,函数get\u select\u ids
返回的是什么,是整数还是字符串?您需要回答这个问题来帮助我们找出问题所在。get\u select\u ids returning string.convert\u realsoft('action',get\u select\u ids('node\arr,'field\u object\u type'))函数get\u select\u ids($type_arr,$field_name){$get_select_ids=field_get_items('node',$type_arr,$field_name);return$get_select_ids[0]['value'];}感谢您发布了其他代码,我已经更新了您的原始帖子以包含这些内容。以后尽量更具描述性,这将有助于其他人更快地帮助您。:)那么,现在我已经看到了您的其他代码,函数get\u select\u ids
返回的是什么,是整数还是字符串?您需要回答这个问题来帮助我们找出问题所在。get\u select\u ids返回字符串。
function convert_realsoft($type, $input_id) {
$dial_arr = array();
switch ($type) {
case 'action':
$dial_arr = array(
'lorem' => 1,
'ipsum' => 2,
'dolor' => 3,
);
break;
case 'desk':
$dial_arr = array(
'sit' => 1,
'amet' => 2,
);
break;
//...and next case...
}
return $dial_arr[$input_id];
}