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];

}