protected function getTarget($valueName)
    {
        $valueName = \trim($valueName);
        $matches   = [];
        switch (true) {
            case \preg_match(self::CLASS_OR_FUNC, $valueName, $matches):
                return [$this->resolveName($matches[0], true), null, 0];

            case \preg_match(self::CLASS_MEMBER, $valueName, $matches):
                return [$this->resolveName($matches[1]), $matches[2], Mirror::CONSTANT | Mirror::METHOD];

            case \preg_match(self::CLASS_STATIC, $valueName, $matches):
                return [$this->resolveName($matches[1]), $matches[2], Mirror::STATIC_PROPERTY | Mirror::PROPERTY];

            case \preg_match(self::INSTANCE_MEMBER, $valueName, $matches):
                if ($matches[2] === '->') {
                    $kind = Mirror::METHOD | Mirror::PROPERTY;
                } else {
                    $kind = Mirror::CONSTANT | Mirror::METHOD;
                }

                return [$this->resolveObject($matches[1]), $matches[3], $kind];

            default:
                return [$this->resolveObject($valueName), null, 0];
        }
    }
protected function getTarget($valueName)
    {
        $valueName = \trim($valueName);
        $matches   = [];
        switch (true) {
            case \preg_match(self::CLASS_OR_FUNC, $valueName, $matches):
                return [$this->resolveName($matches[0], true), null, 0];

            case \preg_match(self::CLASS_MEMBER, $valueName, $matches):
                return [$this->resolveName($matches[1]), $matches[2], Mirror::CONSTANT | Mirror::METHOD];

            case \preg_match(self::CLASS_STATIC, $valueName, $matches):
                return [$this->resolveName($matches[1]), $matches[2], Mirror::STATIC_PROPERTY | Mirror::PROPERTY];

            case \preg_match(self::INSTANCE_MEMBER, $valueName, $matches):
                if ($matches[2] === '->') {
                    $kind = Mirror::METHOD | Mirror::PROPERTY;
                } else {
                    $kind = Mirror::CONSTANT | Mirror::METHOD;
                }

                return [$this->resolveObject($matches[1]), $matches[3], $kind];

            default:
                return [$this->resolveObject($valueName), null, 0];
        }
    }
protected function getTarget ( $ valueName ) { $ valueName = \ trim ( $ valueName ) ; $ matches = [ ] ; switch ( true ) { case \ preg_match ( self :: CLASS_OR_FUNC , $ valueName , $ matches ) : return [ $ this -> resolveName ( $ matches [ 0 ] , true ) , null , 0 ] ; case \ preg_match ( self :: CLASS_MEMBER , $ valueName , $ matches ) : return [ $ this -> resolveName ( $ matches [ 1 ] ) , $ matches [ 2 ] , Mirror :: CONSTANT | Mirror :: METHOD ] ; case \ preg_match ( self :: CLASS_STATIC , $ valueName , $ matches ) : return [ $ this -> resolveName ( $ matches [ 1 ] ) , $ matches [ 2 ] , Mirror :: STATIC_PROPERTY | Mirror :: PROPERTY ] ; case \ preg_match ( self :: INSTANCE_MEMBER , $ valueName , $ matches ) : if ( $ matches [ 2 ] === '->' ) { $ kind = Mirror :: METHOD | Mirror :: PROPERTY ; } else { $ kind = Mirror :: CONSTANT | Mirror :: METHOD ; } return [ $ this -> resolveObject ( $ matches [ 1 ] ) , $ matches [ 3 ] , $ kind ] ; default : return [ $ this -> resolveObject ( $ valueName ) , null , 0 ] ; } }
Get the target for a value.

@throws \InvalidArgumentException when the value specified can't be resolved

@param string $valueName Function, class, variable, constant, method or property name

@return array (class or instance name, member name, kind)
Get the target for a value .