是否可以从一个静态变量引用另一个(在类中)?

时间:2017-04-13 22:50:41

标签: php

在PHP类中,无论如何都可以从一个静态变量引用到另一个静态变量吗?

class EmployeeDAO
{
    private static $FIND_ALL = 'SELECT * FROM employee';

    private static $FIND_BY_NAME = self::$FIND_ALL . // This is not allowed!
        ' WHERE employee.name LIKE :name';
}

3 个答案:

答案 0 :(得分:1)

从表格php 5.6开始,你可以这样做:

class EmployeeDAO
{
    const FIND_ALL = 'SELECT * FROM employee';

    const FIND_BY_NAME = self::FIND_ALL .
        ' WHERE employee.name LIKE :name';
}

答案 1 :(得分:1)

声明为static的属性无法使用实例化的类对象访问(尽管静态方法可以)。为了与PHP 4兼容,如果没有使用可见性声明,则属性或方法将被视为声明为public。

PHP: Static Keyword - Manual

答案 2 :(得分:0)

我不确定这是一种受欢迎的方式,但我可以这样解决:

private static function sql_findAll()
{
    return 'SELECT * FROM employee';
}

private static function sql_findByName()
{
    return self::sql_findAll() .
        ' WHERE employee.name LIKE :name';
}