0

我班的模型是这样的:

class Foo {
    private $date;
    public function set_date($date) {
        $this->date = $date;
    }

    // ANSWER: this gets executed as a constructor (case-insensitive)
    public function foo() {
        print_r($this->date->format('Y'));
    }
}

$Foo = new Foo();

我得到:Fatal error: Call to a member function format() on a non-object打电话时new Foo()

我一直无法重现错误(上面的代码似乎有效)。

上面的代码现在是错误的精确复制品。

4

3 回答 3

4

这是一个语法错误:

print_r($this->Date->format('Y');
                              ^^^^  missing closing paren
于 2013-06-07T21:54:20.867 回答
2

可能还有其他代码被执行。该方法format在方法中被调用bb在您提供的代码中没有调用它,但它可能在其他地方调用,并且在设置日期之前。

于 2013-06-07T21:54:36.647 回答
2

由于在使用创建类实例时发生错误,new Foo()我怀疑该类中有一个方法foo()。因为没有__construct()该方法foo()被认为是构造函数并被执行。这可能会直接或通过调用其他方法触发错误。

于 2013-06-07T21:56:50.443 回答