Example #1
0
abstract class Operation extends \lang\Enum
{
    public static $plus, $minus, $times, $divided_by;
    static function __static()
    {
        self::$plus = new class(0, 'plus') extends Operation
        {
            static function __static()
            {
            }
            public function evaluate($x, $y)
            {
                return $x + $y;
            }
        };
        self::$minus = new class(1, 'minus') extends Operation
        {
            static function __static()
            {
            }
            public function evaluate($x, $y)
            {
                return $x - $y;
            }
        };
        self::$times = new class(2, 'times') extends Operation
        {
            static function __static()
            {
            }
            public function evaluate($x, $y)
            {
                return $x * $y;
            }
        };
        self::$divided_by = new class(3, 'divided_by') extends Operation
        {
            static function __static()
            {
            }
            public function evaluate($x, $y)
            {
                return $x / $y;
            }
        };
    }
    /**
     * Evaluates this operation
     *
     * @param   int x
     * @param   int y
     * @return  float
     */
    public abstract function evaluate($x, $y);
}
Example #2
0
 static function __static()
 {
     self::$plus = newinstance(self::class, [0, 'plus'], '{
   static function __static() { }
   public function evaluate($x, $y) { return $x + $y; } 
 }');
     self::$minus = newinstance(self::class, [1, 'minus'], '{
   static function __static() { }
   public function evaluate($x, $y) { return $x - $y; } 
 }');
     self::$times = newinstance(self::class, [2, 'times'], '{
   static function __static() { }
   public function evaluate($x, $y) { return $x * $y; } 
 }');
     self::$divided_by = newinstance(self::class, [3, 'divided_by'], '{
   static function __static() { }
   public function evaluate($x, $y) { return $x / $y; } 
 }');
 }
 static function __static()
 {
     self::$plus = newinstance(__CLASS__, array(0, 'plus'), '{
   static function __static() { }
   public function evaluate($x, $y) { return $x + $y; } 
 }');
     self::$minus = newinstance(__CLASS__, array(1, 'minus'), '{
   static function __static() { }
   public function evaluate($x, $y) { return $x - $y; } 
 }');
     self::$times = newinstance(__CLASS__, array(2, 'times'), '{
   static function __static() { }
   public function evaluate($x, $y) { return $x * $y; } 
 }');
     self::$divided_by = newinstance(__CLASS__, array(3, 'divided_by'), '{
   static function __static() { }
   public function evaluate($x, $y) { return $x / $y; } 
 }');
 }