在PHP函数中将类变量称为默认参数

时间:2012-04-27 00:34:42

标签: 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 = self::id){
        //...blah blah blah
    }
}

感谢您的帮助

3 个答案:

答案 0 :(得分:9)

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

class property{
    private $id;
    function load_data($id = null){
        $id = (is_null($id)) ? $this->id : $id;
    }
}

答案 1 :(得分:2)

你可以这样做:

class property
{
    private $id;

    function load_data($id = null){

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

        //...blah blah blah
    }
}

答案 2 :(得分:0)

我知道它是一个老问题,但是我想出了这个问题来寻找同样的东西,答案是肯定的,只要您将其定义为常量即可。

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