当不在上下文中的对象中时使用$this的php错误
删除两个文件中的代码,使其简洁明了: controller/LessonMainController.php Model/Courses/CourseDependency.php 问题:当不在上下文中的对象中时使用$this的php错误,php,Php,删除两个文件中的代码,使其简洁明了: controller/LessonMainController.php Model/Courses/CourseDependency.php 问题: 在没有的情况下!CourseDependency::isDependencyAccessible($\u GET['course'])一切正常,但在这种情况下,我在不在对象上下文(0)中时使用$this时出现错误。请指导我解决此问题。未收到质量帮助,搜索一小时后我解决了此问题。实际上,我试图在静态方法中调用非静
在没有
的情况下!CourseDependency::isDependencyAccessible($\u GET['course'])
一切正常,但在这种情况下,我在不在对象上下文(0)中时使用$this时出现错误。
请指导我解决此问题。未收到质量帮助,搜索一小时后我解决了此问题。实际上,我试图在静态方法中调用非静态方法。所以我需要先把它转换成一个对象。如果有人想知道如何做到这一点:
(new self)->checkId($course_id);
您没有提供任何有用的详细信息。根据您提供的单行错误消息,绝对无法知道错误发生在何处。请花些时间阅读这些页面,尤其是和。你们要求我们随机推测一个项目中发生了什么,它是mvc结构,包含巨大的文件,堆栈溢出不是一个随意的猜测,看看哪个会粘在站点上。当你花了一些时间试图隔离问题并有一个具体问题要问时,请回来,我们会尽力帮助你。阅读。当你努力的时候再来。@KenWhite,你在那里找到了几根头发,并且掉了几根。现在请指导我。第一个脚本可能不包含在方法中?或者如果它包含在方法中,它可能包含在
静态
方法中。
public static function isDependencyAccessible($course_id, $user_id = false) {
self::checkId($course_id);
if (!$user_id) {
$user_id = User::getCurrentUser()->id;
}
$courses = self::getDependencies($course_id);
$access = true;
if (!empty($courses)) {
$user = new User($user_id);
$user_to_courses = CourseToUser::getAll(array('condition' => 'users_ID='.$user->id." and courses_ID IN (".implode(",", $courses).")"), array('courses_ID', 'status'));
foreach ($user_to_courses as $value) {
if ($value['status'] != CourseToUser::STATUS_COMPLETED) {
$access = false;
}
}
}
return $access;
}
}
(new self)->checkId($course_id);