Можно ли связать статические методы вместе, используя статический класс? Скажем, я хотел сделать что-то вроде этого:
$value = TestClass::toValue(5)::add(3)::subtract(2)::add(8)::result();
., и, очевидно, я бы хотел, чтобы $value было присвоено число 14. Возможно ли это?
Обновить: он не работает (вы не можете вернуть "я" - это не экземпляр!), но именно здесь мои мысли приняли меня:
class TestClass {
public static $currentValue;
public static function toValue($value) {
self::$currentValue = $value;
}
public static function add($value) {
self::$currentValue = self::$currentValue + $value;
return self;
}
public static function subtract($value) {
self::$currentValue = self::$currentValue - $value;
return self;
}
public static function result() {
return self::$value;
}
}
После этого я думаю, что было бы просто разумнее просто работать с экземпляром класса, а не пытаться связать вызовы статических функций (что не представляется возможным, если только приведенный выше пример не может быть изменен каким-то образом).