在PHP函数中引用类变量作为默认参数

在PHP函数中引用类变量作为默认参数,php,function,optional-parameters,Php,Function,Optional Parameters,我希望在我的类中有一个具有默认参数的函数,以便在需要时可以省略参数。我希望默认值是存储在类中的变量 嗨,为什么在Aptana中显示错误消息 class property{ private $id; function load_data($id = $this->id){ //...blah blah blah } } 我应该改用 class property{ static $id; function load_data($id =

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

嗨,为什么在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
    }
}
?


谢谢你的帮助

我很确定你不能做你想做的事。相反,您只需检查参数是否有值,如果没有,则指定默认值,即对象属性

class property{
    private $id;
    function load_data($id = null){
        $id = (is_null($id)) ? $this->id : $id;
    }
}
您可以这样做:

class property
{
    private $id;

    function load_data($id = null){

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

        //...blah blah blah
    }
}

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

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

没那么近,在我点击submit之前看到了AJAX通知@杰克马奥尼:哈哈,讽刺?如果您认为我们的答案中有一个是可以接受的,请接受一个。@MikePurcell-nah看到这一点很有趣。接受以上答案,但你的答案是一样的,所以谢谢way@JackMahoney字体没问题,重要的是你的问题得到了回答。虽然我喜欢三元结构,但我尽量避免将变量设置为自身。