Est-il possible d'enchaîner des méthodes statiques à l'aide d'une classe statique ? Imaginons que je veuille faire quelque chose comme ceci :
$value = TestClass::toValue(5)::add(3)::subtract(2)::add(8)::result();
. . et je voudrais évidemment que le nombre 14 soit attribué à $value. Cela est-il possible ?
Mise à jour : Cela ne fonctionne pas (vous ne pouvez pas retourner "self" - ce n'est pas une instance !), mais c'est là où mes pensées m'ont mené :
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;
}
}
Après avoir résolu ce problème, je pense qu'il serait plus logique de travailler simplement avec une instance de classe plutôt que d'essayer d'enchaîner les appels de fonctions statiques (ce qui ne semble pas possible, à moins que l'exemple ci-dessus puisse être modifié d'une manière ou d'une autre).