【发布时间】: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_dumpthis->CI->privileges->getcontrolleruri()返回的值。它可能是一个字符串,而不是一个数组。 -
是字符串,不需要var_dump。我很确定 PHP 没有说谎
-
你想用 if 实现什么 -
$sesscontroller && empty( $sesscontroller )看起来有点奇怪。 -
在 krsort 函数中只传递数组参数,所以在你的参数中变量值不是数组,所以这会出错