original_string: private function evaluate(string $script, string $resource, array $args)
      {
          if (
              $this->redis instanceof \Redis ||
              $this->redis instanceof \RedisCluster ||
              $this->redis instanceof RedisProxy ||
              $this->redis instanceof RedisClusterProxy
          ) {
              return $this->redis->eval($script, array_merge([$resource], $args), 1);
          }
  
          if ($this->redis instanceof \RedisArray) {
              return $this->redis->_instance($this->redis->_target($resource))->eval($script, array_merge([$resource], $args), 1);
          }
  
          if ($this->redis instanceof \Predis\Client) {
              return $this->redis->eval(...array_merge([$script, 1, $resource], $args));
          }
  
          throw new InvalidArgumentException(sprintf('%s() expects being initialized with a Redis, RedisArray, RedisCluster or Predis\Client, %s given', __METHOD__, \is_object($this->redis) ? \get_class($this->redis) : \gettype($this->redis)));
      }
code: private function evaluate(string $script, string $resource, array $args)
      {
          if (
              $this->redis instanceof \Redis ||
              $this->redis instanceof \RedisCluster ||
              $this->redis instanceof RedisProxy ||
              $this->redis instanceof RedisClusterProxy
          ) {
              return $this->redis->eval($script, array_merge([$resource], $args), 1);
          }
  
          if ($this->redis instanceof \RedisArray) {
              return $this->redis->_instance($this->redis->_target($resource))->eval($script, array_merge([$resource], $args), 1);
          }
  
          if ($this->redis instanceof \Predis\Client) {
              return $this->redis->eval(...array_merge([$script, 1, $resource], $args));
          }
  
          throw new InvalidArgumentException(sprintf('%s() expects being initialized with a Redis, RedisArray, RedisCluster or Predis\Client, %s given', __METHOD__, \is_object($this->redis) ? \get_class($this->redis) : \gettype($this->redis)));
      }
code_tokens: private function evaluate ( string $ script , string $ resource , array $ args ) { if ( $ this -> redis instanceof \ Redis || $ this -> redis instanceof \ RedisCluster || $ this -> redis instanceof RedisProxy || $ this -> redis instanceof RedisClusterProxy ) { return $ this -> redis -> eval ( $ script , array_merge ( [ $ resource ] , $ args ) , 1 ) ; } if ( $ this -> redis instanceof \ RedisArray ) { return $ this -> redis -> _instance ( $ this -> redis -> _target ( $ resource ) ) -> eval ( $ script , array_merge ( [ $ resource ] , $ args ) , 1 ) ; } if ( $ this -> redis instanceof \ Predis \ Client ) { return $ this -> redis -> eval ( ... array_merge ( [ $ script , 1 , $ resource ] , $ args ) ) ; } throw new InvalidArgumentException ( sprintf ( '%s() expects being initialized with a Redis, RedisArray, RedisCluster or Predis\Client, %s given' , __METHOD__ , \ is_object ( $ this -> redis ) ? \ get_class ( $ this -> redis ) : \ gettype ( $ this -> redis ) ) ) ; }
docstring: Evaluates a script in the corresponding redis client.
  
  @return mixed
docstring_tokens: Evaluates a script in the corresponding redis client .