【问题标题】:assign an array to a variable changed the type?将数组分配给变量改变了类型?
【发布时间】:2018-06-06 05:37:08
【问题描述】:

将数组分配给变量时出现此错误:

'krsort()` 期望参数 1 是数组,给定字符串

这是我的代码:

    if ( !in_array( $controller, $bypass_controller ) ) {
        $sesscontroller = $this->CI->privileges->getcontrolleruri();
        if ( $sesscontroller && empty( $sesscontroller ) ) {
            $sesscontroller      = $this->CI->session->userdata( SESS_PREFIK . 'controllers' );
            $arrcnt              = array(
                'menu_name'  => 'Add',
                'controller' => ''
            );
            $sesscontroller[]    = $arrcnt;

        } else {
            if ( !is_null( $sesscontroller ) ) {
                krsort( $sesscontroller );
                $this->CI->session->set_userdata( array(
                    SESS_PREFIK . 'controllers' => $sesscontroller
                ) );
            }
        }

为什么会出现这个错误?

【问题讨论】:

  • 我们看不到您的数据,那么除了错误消息之外,我们应该如何提供帮助?我发现错误消息很清楚。但是你确定不是$controller 你想排序吗?据我所知,这是一个数组。
  • var_dump this->CI->privileges->getcontrolleruri() 返回的值。它可能是一个字符串,而不是一个数组。
  • 是字符串,不需要var_dump。我很确定 PHP 没有说谎
  • 你想用 if 实现什么 - $sesscontroller && empty( $sesscontroller ) 看起来有点奇怪。
  • 在 krsort 函数中只传递数组参数,所以在你的参数中变量值不是数组,所以这会出错

标签: php arrays wordpress tags


【解决方案1】:

试试这样。努力解决希望就是工作

<?php
if ( !in_array( $controller, $bypass_controller ) ) {
    $sesscontroller = $this->CI->privileges->getcontrolleruri();
    if ( $sesscontroller && empty( $sesscontroller ) ) {
        $sesscontroller      = $this->CI->session->userdata( SESS_PREFIK . 'controllers' );
        $arrcnt              = array(
            'menu_name'  => 'Add',
            'controller' => ''
        );
        $sesscontroller[]    = $arrcnt;

        if ( !is_null( $sesscontroller ) ) {
            krsort( $sesscontroller );
            $this->CI->session->set_userdata( array(
                SESS_PREFIK . 'controllers' => $sesscontroller
            ) );
        }

    } else {
        // This ELSE part is this line 
        // $sesscontroller = $this->CI->privileges->getcontrolleruri();
        //echo $sesscontroller;
    }
}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2020-11-01
    • 2019-06-11
    相关资源
    最近更新 更多