未使用静态类却触发“不在对象上下文中使用$this”错误求助
解决“Using $this when not in object context”错误
嘿,我来帮你搞定这个问题!虽然你明确说没使用静态类,但这个错误的核心原因其实是调用showcal()方法的方式不对——你大概率是直接通过类名调用了这个非静态方法(比如modJeventsCalHelper::showcal()),而非静态方法必须在类的实例对象上调用,$this才能正确指向当前实例。
解决方案
你需要先实例化类的对象,再调用showcal()方法:
// 先创建类的实例 $calHelper = new modJeventsCalHelper(); // 通过实例调用非静态方法 $calHelper->showcal();
额外提醒:代码里的小bug
我还注意到你初始化变量时误用了比较运算符==,这会导致变量没有被正确赋值:
// 错误写法:用了比较运算符== $year == null; $month == null; // 正确写法:用赋值运算符= $year = null; $month = null;
这个小问题也可能导致后续逻辑出现异常,记得一起修正哦~
内容的提问来源于stack exchange,提问作者Sai Prasad
相关产品推荐
相关产品推荐

