在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';
}
答案 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。
答案 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';
}