4

我想在我的类中有一个具有默认参数的函数,以便可以在需要时省略该参数。我希望默认值是存储在我的类中的变量;

嗨,为什么这会在 Aptana 中显示错误消息?

class property{
    private $id;
    function load_data($id = $this->id){
        //...blah blah blah
    }
}

我应该改用

class property{
    static $id;
    function load_data($id = self::id){
        //...blah blah blah
    }
}

?

谢谢您的帮助

4

3 回答 3

9

我很确定你不能做你正在寻找的东西。相反,您应该简单地检查参数是否有值,如果没有,则分配默认值,即对象属性。

class property{
    private $id;
    function load_data($id = null){
        $id = (is_null($id)) ? $this->id : $id;
    }
}
于 2012-04-27T00:38:39.823 回答
2

你可以这样做:

class property
{
    private $id;

    function load_data($id = null){

        if (is_null($id)) {
            $id = $this->id;
        }

        //...blah blah blah
    }
}
于 2012-04-27T00:38:42.627 回答
0

我知道这是一个老问题,但我在寻找相同类型的东西时想出了这个问题,答案是肯定的,只要你将它定义为常数,你就可以做到:

class property{
    const $id;
    function load_data($id = self::id){
        //...blah blah blah
    }
}
于 2020-04-06T09:39:42.433 回答