【发布时间】:2018-06-27 04:42:39
【问题描述】:
这是我写的代码:
class init{
private $time_spent;
public function __construct(){
$this->time_spent = array(); //<- caching variable
}
function get_course_unit_time_spent( $user_id,$course_id,$unit_id ){
if(empty($this->time_spent) || empty($this->time_spent[$course_id]) || empty($this->time_spent[$course_id][$unit_id])){
$this->time_spent[$course_id][$unit_id] = get_user_meta($user_id,'time_spent_'.$course_id.'_'.$unit_id,true);
if( empty($this->time_spent[$course_id][$unit_id]) ){
$this->time_spent[$course_id][$unit_id] = 0;
}
}
return $this->time_spent[$course_id][$unit_id];
}
function get_course_time_spent( $user_id,$course_id ){
if( empty($this->time_spent[$course_id]) ){
if(!bp_course_is_member($course_id,$user_id))
return 0;
$time_spent = 0;
$this->time_spent[$course_id] = array();
$course_curriculum = bp_course_get_curriculum( $course_id );
foreach ($course_curriculum as $key => $unit_id) {
if( is_numeric($unit_id) ){
$time_spent += $this->get_course_unit_time_spent( $user_id,$course_id,$unit_id );
}
}
$this->time_spent[$course_id] = $time_spent;
}
return $this->time_spent[$course_id];
}
}
有很多代码,但问题在于我在上面编写的第一个函数,在两个不同的地方我得到了上面的警告。
1) 警告:不能在第 10 行和第 12 行(在上面的代码中)使用标量值作为数组。
2) 警告:isset 中的偏移类型非法或第 8 行为空(在上面的代码中)。
3) 警告:第 10、11 和 12 行(在上面的代码中)存在非法偏移类型。
第二个函数没有抛出任何错误,但每当我使用第一个函数或第二个函数时,警告来自第一个函数。我不确定它是什么,有人可以帮助纠正它吗?
更新:更新了代码,现在第一个警告消失了,但仍然出现非法偏移错误。
【问题讨论】: