我正在努力解决这个问题,但我不能。我想我错误地调用了这个函数。另外我想知道Custom :: generate($ r1,$ p1,$ a1)与Custom :: generate之间的区别。
有趣的是我在同一个文件中有这个代码$c = $this->install();
但功能不同而且它正在工作。我很困惑。请帮助解决此错误
Custom.php:
class Custom {
private function install() {
// code
}
public function generate($r1, $p1, $a1) {
// code
$c = $this->install();
}
}
MotherUpdate.php
protected function exeGen() {
$template = Custom::generate($r1, $p1, $a1);
}
我收到了这个错误:
Fatal error: Uncaught Error: Using $this when not in object context in /Users/amin/Custom/Custom.php:12
答案 0 :(得分:1)
根据我的评论,
generate()
不是静态函数。在访问Custom()
函数之前,您需要实例化generate()
类。
您可以使用:
访问静态功能,例如。 Custom::function()
您应该做的是实例化Custom()
类,然后调用generate()
函数
protected function exeGen() {
//instantiate Custom Class
$custom = new Custom();
$template = $custom->generate($r1, $p1, $a1);
}
同样在使用静态功能时,您不应在其中使用$this
。
答案 1 :(得分:1)
你需要这个
class Custom {
public static function generate($r1, $p1, $a1) {
// You can't use $this here
}
}
$template = Custom::generate($r1, $p1, $a1);
或者这个
class Custom {
public function generate($r1, $p1, $a1) {
// You can use $this here
}
}
$custom = new Custom();
$template = $custom->generate($r1, $p1, $a1);