В свойстве Test::$db хранится название класса.
Есть такой код:
class Test
{
private static $db = 'DBRemote';
public static function testId()
{
$db = self::$db;
return $db::query();
}
}
Как упростить метод testId до 1 строки?
class Test
{
private static $db = 'DBRemote';
public static function testId()
{
$db = self::$db;
return $db::query();
}
}
Цитата (Zzepish @ 17.11.2014 - 02:00) |
return (self::$db)::query(); |
Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
public static function testId()
{
return call_user_func(array(self::$db, 'query'));
}
class Test
{
/** @var DBRemote */
private $db = DBRemote;
/**
* @param DBRemote $db
*/
public function __construct( DBRemote $db)
{
$this-db = $db;
}
public static function testId()
{
return $this->db->query();
}
}
$$db::query();
Цитата (Invis1ble @ 21.11.2014 - 20:33) |
vital ну ты бы хоть проверил, это ж синтаксическая ошибка |
Цитата |
Как упростить метод testId до 1 строки? |
class Test
{
private static $db = 'DBRemote';
public static function testId()
{
$db = self::$db; return $db::query();
}
}
Цитата (SlavaFr @ 21.11.2014 - 16:22) |
Советую избавиться от статического метода query в DBRemote превратив его в обычный публичный метод oпределенного типа. Программирование не заключается в экономии одной строчки в методе. |
Цитата |
Советую избавиться от статического метода query в DBRemote превратив его в обычный публичный метод oпределенного типа |