# Reflexão

# Introdução

O PHP vem com uma API completa de reflexão que acrescenta a capacidade de realizar introspecção em classes, interfaces, funções, métodos e extensões. Além disso, a API de reflexão oferece maneiras de recuperar comentários de documentação para as funções, classes e métodos.

Favor observar que em algumas partes da API interna falta o código necessário para funcionar com a extensão de reflexão. Por exemplo, uma classe interna do PHP pode estar com dados de reflexão faltando para propriedades. Porém, estes poucos casos são considerados bugs e devem, portanto, ser descobertos e corrigidos.

- Exemplos
- Estendendo
- Reflection — Classe Reflection
  - Reflection::export — Exports
  - Reflection::getModifierNames — Obtém os nomes dos modificadores
- ReflectionClass — Classe ReflectionClass
  - ReflectionClass::__construct — Constrói uma ReflectionClass
  - ReflectionClass::export — Exporta uma classe
  - ReflectionClass::getAttributes — Obtém atributos
  - ReflectionClass::getConstant — Obtém uma constante definida
  - ReflectionClass::getConstants — Obtém constantes
  - ReflectionClass::getConstructor — Obtém o construtor da classe
  - ReflectionClass::getDefaultProperties — Obtém propriedades padrão
  - ReflectionClass::getDocComment — Obtém comentários doc
  - ReflectionClass::getEndLine — Obtém a linha final
  - ReflectionClass::getExtension — Obtém um objeto ReflectionExtension para a extensão que definiu a classe
  - ReflectionClass::getExtensionName — Obtém o nome da extensão que definiu a classe
  - ReflectionClass::getFileName — Obtém o nome do arquivo no qual a classe foi definida
  - ReflectionClass::getInterfaceNames — Obtém os nomes das interfaces
  - ReflectionClass::getInterfaces — Obtém as interfaces
  - ReflectionClass::getLazyInitializer — Obtém o inicializador lento
  - ReflectionClass::getMethod — Obtém um ReflectionMethod para um método de classe
  - ReflectionClass::getMethods — Obtém um array de métodos
  - ReflectionClass::getModifiers — Obtém os modificadores de classe
  - ReflectionClass::getName — Obtém o nome da classe
  - ReflectionClass::getNamespaceName — Obtém o nome do namespace
  - ReflectionClass::getParentClass — Obtém a classe pai
  - ReflectionClass::getProperties — Obtém propriedades
  - ReflectionClass::getProperty — Obtém um ReflectionProperty para a propriedade de uma classe
  - ReflectionClass::getReflectionConstant — Obtém um ReflectionClassConstant para a constante de uma classe
  - ReflectionClass::getReflectionConstants — Obtém constantes de classe
  - ReflectionClass::getShortName — Obtém o nome curto
  - ReflectionClass::getStartLine — Obtém o número da linha inicial
  - ReflectionClass::getStaticProperties — Obtém propriedades estáticas
  - ReflectionClass::getStaticPropertyValue — Obtém o valor da propriedade estática
  - ReflectionClass::getTraitAliases — RRetorna um array de aliases de trait
  - ReflectionClass::getTraitNames — Retorna um array de nomes de traits usadas por esta classe
  - ReflectionClass::getTraits — Retorna um array de traits usadas por esta classe
  - ReflectionClass::hasConstant — Verifica se a constante está definida
  - ReflectionClass::hasMethod — Verifica se o método está definido
  - ReflectionClass::hasProperty — Verifica se a propriedade está definida
  - ReflectionClass::implementsInterface — Implementa interface
  - ReflectionClass::initializeLazyObject — Força a inicialização de um objeto lento
  - ReflectionClass::inNamespace — Verifica se está no namespace
  - ReflectionClass::isAbstract — Verifica se a classe é abstrata
  - ReflectionClass::isAnonymous — Verifica se uma classe é anônima
  - ReflectionClass::isCloneable — Retorna se esta classe é clonável
  - ReflectionClass::isEnum — Retorna se esta é um enum
  - ReflectionClass::isFinal — Verifica se a classe é final
  - ReflectionClass::isInstance — Verifica a classe por instância
  - ReflectionClass::isInstantiable — Verifica se a classe é instanciável
  - ReflectionClass::isInterface — Verifica se a classe é uma interface
  - ReflectionClass::isInternal — Verifica se a classe está definida internamente por uma extensão ou pelo núcleo
  - ReflectionClass::isIterable — Verifica se esta classe é iterável
  - ReflectionClass::isIterateable — Sinônimo de ReflectionClass::isIterable
  - ReflectionClass::isReadOnly — Verifica se a classe é somente leitura
  - ReflectionClass::isSubclassOf — Verifica se é uma subclasse
  - ReflectionClass::isTrait — Retorna se esta é uma trait
  - ReflectionClass::isUninitializedLazyObject — Verifica se um objeto é lento e não inicializado
  - ReflectionClass::isUserDefined — Verifica se foi definida pelo usuário
  - ReflectionClass::markLazyObjectAsInitialized — Marca um objeto lento como inicializado sem chamar o inicializador ou a fábrica
  - ReflectionClass::newInstance — Cria uma nova instância de classe a partir de determinados argumentos
  - ReflectionClass::newInstanceArgs — Cria uma nova instância de classe a partir de determinados argumentos
  - ReflectionClass::newInstanceWithoutConstructor — Cria uma nova instância de classe sem invocar o construtor
  - ReflectionClass::newLazyGhost — Cria uma nova instância de fantasma lento
  - ReflectionClass::newLazyProxy — Cria uma nova instância de proxy lento
  - ReflectionClass::resetAsLazyGhost — Redefine um objeto e o marca como lento
  - ReflectionClass::resetAsLazyProxy — Redefine um objeto e o marca como lento
  - ReflectionClass::setStaticPropertyValue — Define o valor da propriedade estática pública
  - ReflectionClass::__toString — Retorna a representação em string do objeto ReflectionClass
- ReflectionClassConstant — A classe ReflectionClassConstant
  - ReflectionClassConstant::__construct — Constrói uma ReflectionClassConstant
  - ReflectionClassConstant::export — Exportação
  - ReflectionClassConstant::getAttributes — Obtém atributos
  - ReflectionClassConstant::getDeclaringClass — Obtém a classe declarada
  - ReflectionClassConstant::getDocComment — Obtém comentários doc
  - ReflectionClassConstant::getModifiers — Obtém os modificadores constantes da classe
  - ReflectionClassConstant::getName — Obtém o nome da constante
  - ReflectionClassConstant::getType — Obtém o tipo de uma constante de classe
  - ReflectionClassConstant::getValue — Obtém valor
  - ReflectionClassConstant::hasType — Verifica se uma constante de classe tem um tipo
  - ReflectionClassConstant::isDeprecated — Verifica se está descontinuada
  - ReflectionClassConstant::isEnumCase — Verifica se a constante de classe é um caso de enumeração
  - ReflectionClassConstant::isFinal — Verifica se a constante da classe é final
  - ReflectionClassConstant::isPrivate — Verifica se a constante da classe é privada
  - ReflectionClassConstant::isProtected — Verifica se a constante de classe é protegida
  - ReflectionClassConstant::isPublic — Verifica se a constante da classe é pública
  - ReflectionClassConstant::__toString — Retorna a representação em string do objeto ReflectionClassConstant
- ReflectionConstant — A classe ReflectionConstant
  - ReflectionConstant::__construct — Constrói um objeto ReflectionConstant
  - ReflectionConstant::getExtension — Obtém ReflectionExtension da extensão de definição
  - ReflectionConstant::getExtensionName — Obtém o nome da extensão definidora
  - ReflectionConstant::getFileName — Obtém o nome do arquivo de definição
  - ReflectionConstant::getName — Obtém o nome
  - ReflectionConstant::getNamespaceName — Obtém o nome do namespace
  - ReflectionConstant::getShortName — Obtém o nome abreviado
  - ReflectionConstant::getValue — Obtém o valor
  - ReflectionConstant::isDeprecated — Verifica se foi descontinuada
  - ReflectionConstant::__toString — Retorna representação em string
- ReflectionEnum — A classe ReflectionEnum
  - ReflectionEnum::__construct — Instancia um objeto ReflectionEnum
  - ReflectionEnum::getBackingType — Obtém o tipo de apoio de um Enum, se houver
  - ReflectionEnum::getCase — Retorna um caso específico de um Enum
  - ReflectionEnum::getCases — Retorna uma lista de todos os casos em um Enum
  - ReflectionEnum::hasCase — Verifica um caso em um Enum
  - ReflectionEnum::isBacked — Determina se um Enum é um Backed Enum
- ReflectionEnumUnitCase — A classe ReflectionEnumUnitCase
  - ReflectionEnumUnitCase::__construct — Instancia um objeto ReflectionEnumUnitCase
  - ReflectionEnumUnitCase::getEnum — Obtém o reflexo do enum deste caso
  - ReflectionEnumUnitCase::getValue — Obtém o objeto enum case descrito por este objeto de reflexão
- ReflectionEnumBackedCase — A classe ReflectionEnumBackedCase
  - ReflectionEnumBackedCase::__construct — Instancia um objeto ReflectionEnumBackedCase
  - ReflectionEnumBackedCase::getBackingValue — Obtém o valor escalar que apoia este caso Enum
- ReflectionZendExtension — A classe ReflectionZendExtension
  - ReflectionZendExtension::__clone — Clone
  - ReflectionZendExtension::__construct — Constrói um objeto ReflectionZendExtension
  - ReflectionZendExtension::export — Exporta
  - ReflectionZendExtension::getAuthor — Obtém o autor
  - ReflectionZendExtension::getCopyright — Obtém os direitos autorais
  - ReflectionZendExtension::getName — Obtém o nome
  - ReflectionZendExtension::getURL — Obtém a URL
  - ReflectionZendExtension::getVersion — Obtém a versão
  - ReflectionZendExtension::__toString — Para string
- ReflectionExtension — Classe ReflectionExtension
  - ReflectionExtension::__clone — Clone
  - ReflectionExtension::__construct — Constrói um ReflectionExtension
  - ReflectionExtension::export — Exportação
  - ReflectionExtension::getClasses — Obtém classes
  - ReflectionExtension::getClassNames — Obtém nomes de classes
  - ReflectionExtension::getConstants — Obtém constantes
  - ReflectionExtension::getDependencies — Obtém dependências
  - ReflectionExtension::getFunctions — Obtém funções de extensão
  - ReflectionExtension::getINIEntries — Obtém entradas de extensão ini
  - ReflectionExtension::getName — Obtém o nome da extensão
  - ReflectionExtension::getVersion — Obtém a versão da extensão
  - ReflectionExtension::info — Imprime informações da extensão
  - ReflectionExtension::isPersistent — Retorna se esta extensão é persistente
  - ReflectionExtension::isTemporary — Retorna se esta extensão é temporária
  - ReflectionExtension::__toString — Para string
- ReflectionFunction — A classe ReflectionFunction
  - ReflectionFunction::__construct — Constrói um objeto ReflectionFunction
  - ReflectionFunction::export — Função de exportação
  - ReflectionFunction::getClosure — Retorna um closure criado dinamicamente para a função
  - ReflectionFunction::invoke — Invoca função
  - ReflectionFunction::invokeArgs — Invoca argumentos de função
  - ReflectionFunction::isAnonymous — Verifica se uma função é anônima
  - ReflectionFunction::isDisabled — Verifica se a função está desativada
  - ReflectionFunction::__toString — Retorna a representação em string do objeto ReflectionFunction
- ReflectionFunctionAbstract — A classe ReflectionFunctionAbstract
  - ReflectionFunctionAbstract::__clone — Função de clone
  - ReflectionFunctionAbstract::getAttributes — Obtém atributos
  - ReflectionFunctionAbstract::getClosureCalledClass — Retorna a classe correspondente a static:: dentro de uma closure
  - ReflectionFunctionAbstract::getClosureScopeClass — Retorna a classe correspondente ao escopo dentro de uma closure
  - ReflectionFunctionAbstract::getClosureThis — Retorna o objeto que corresponde a $this dentro de uma closure
  - ReflectionFunctionAbstract::getClosureUsedVariables — Retorna um array das variáveis ​​usadas no Closure
  - ReflectionFunctionAbstract::getDocComment — Obtém comentário doc
  - ReflectionFunctionAbstract::getEndLine — Obtém o número da linha final
  - ReflectionFunctionAbstract::getExtension — Obtém informações da extensão
  - ReflectionFunctionAbstract::getExtensionName — Obtém o nome da extensão
  - ReflectionFunctionAbstract::getFileName — Obtém o nome do arquivo
  - ReflectionFunctionAbstract::getName — Obtém o nome da função
  - ReflectionFunctionAbstract::getNamespaceName — Obtém o nome do namespace
  - ReflectionFunctionAbstract::getNumberOfParameters — Obtém o número de parâmetros
  - ReflectionFunctionAbstract::getNumberOfRequiredParameters — Obtém o número de parâmetros necessários
  - ReflectionFunctionAbstract::getParameters — Obtém parâmetros
  - ReflectionFunctionAbstract::getReturnType — Obtém o tipo de retorno especificado de uma função
  - ReflectionFunctionAbstract::getShortName — Obtém o nome curto da função
  - ReflectionFunctionAbstract::getStartLine — Obtém o número da linha inicial
  - ReflectionFunctionAbstract::getStaticVariables — Obtém variáveis estáticas
  - ReflectionFunctionAbstract::getTentativeReturnType — Retorna o tipo de retorno provisório associado à função
  - ReflectionFunctionAbstract::hasReturnType — Verifica se a função possui um tipo de retorno especificado
  - ReflectionFunctionAbstract::hasTentativeReturnType — Retorna se a função tem um tipo de retorno provisório
  - ReflectionFunctionAbstract::inNamespace — Verifica se a função está no namespace
  - ReflectionFunctionAbstract::isClosure — Verifica se é um closure
  - ReflectionFunctionAbstract::isDeprecated — Verifica se está descontinuada
  - ReflectionFunctionAbstract::isGenerator — Retorna se esta função é um gerador
  - ReflectionFunctionAbstract::isInternal — Verifica se é interno
  - ReflectionFunctionAbstract::isStatic — Verifica se a função é estática
  - ReflectionFunctionAbstract::isUserDefined — Verifica se foi definido pelo usuário
  - ReflectionFunctionAbstract::isVariadic — Verifica se a função é variável
  - ReflectionFunctionAbstract::returnsReference — Verifica se retorna referência
  - ReflectionFunctionAbstract::__toString — Retorna a representação em string do objeto ReflectionFunctionAbstract
- ReflectionMethod — A classe ReflectionMethod
  - ReflectionMethod::__construct — Constrói um ReflectionMethod
  - ReflectionMethod::createFromMethodName — Cria um novo ReflectionMethod
  - ReflectionMethod::export — Exporta um método de reflexão
  - ReflectionMethod::getClosure — Retorna um closure criado dinamicamente para o método
  - ReflectionMethod::getDeclaringClass — Obtém a classe declarada para o método refletido
  - ReflectionMethod::getModifiers — Obtém os modificadores do método
  - ReflectionMethod::getPrototype — Obtém o protótipo do método (se houver)
  - ReflectionMethod::hasPrototype — Retorna se um método tem um protótipo
  - ReflectionMethod::invoke — Invoca
  - ReflectionMethod::invokeArgs — Invoca argumentos
  - ReflectionMethod::isAbstract — Verifica se o método é abstrato
  - ReflectionMethod::isConstructor — Verifica se o método é um construtor
  - ReflectionMethod::isDestructor — Verifica se o método é um destrutor
  - ReflectionMethod::isFinal — Verifica se o método é final
  - ReflectionMethod::isPrivate — Verifica se o método é privado
  - ReflectionMethod::isProtected — Verifica se o método é protegido
  - ReflectionMethod::isPublic — Verifica se o método é público
  - ReflectionMethod::setAccessible — Define acessibilidade do método
  - ReflectionMethod::__toString — Retorna a representação em string do objeto do método Reflection
- ReflectionNamedType — A classe ReflectionNamedType
  - ReflectionNamedType::getName — Obtém o nome do tipo como uma string
  - ReflectionNamedType::isBuiltin — Verifica se é um tipo interno
- ReflectionObject — A classe ReflectionObject
  - ReflectionObject::__construct — Constrói um ReflectionObject
  - ReflectionObject::export — Exporta
- ReflectionParameter — A classe ReflectionParameter
  - ReflectionParameter::allowsNull — Verifica se nulo é permitido
  - ReflectionParameter::canBePassedByValue — Retorna se este parâmetro pode ser passado por valor
  - ReflectionParameter::__clone — Clone
  - ReflectionParameter::__construct — Constrói
  - ReflectionParameter::export — Exporta
  - ReflectionParameter::getAttributes — Obtém Atributos
  - ReflectionParameter::getClass — Obtém um objeto ReflectionClass para o parâmetro que está sendo refletido ou null
  - ReflectionParameter::getDeclaringClass — Obtém a classe declarada
  - ReflectionParameter::getDeclaringFunction — Obtém a função de declaração
  - ReflectionParameter::getDefaultValue — Obtém o valor padrão do parâmetro
  - ReflectionParameter::getDefaultValueConstantName — Retorna o nome da constante do valor padrão se o valor padrão for constante ou nulo
  - ReflectionParameter::getName — Obtém o nome do parâmetro
  - ReflectionParameter::getPosition — Obtém a posição do parâmetro
  - ReflectionParameter::getType — Obtém o tipo de um parâmetro
  - ReflectionParameter::hasType — Verifica se o parâmetro tem um tipo
  - ReflectionParameter::isArray — Verifica se o parâmetro espera um array
  - ReflectionParameter::isCallable — Retorna se o parâmetro DEVE ser um callable
  - ReflectionParameter::isDefaultValueAvailable — Verifica se um valor padrão está disponível
  - ReflectionParameter::isDefaultValueConstant — Retorna se o valor padrão deste parâmetro é uma constante
  - ReflectionParameter::isOptional — Verifica se opcional
  - ReflectionParameter::isPassedByReference — Verifica se foi passado por referência
  - ReflectionParameter::isPromoted — Verifica se um parâmetro está promovido a uma propriedade
  - ReflectionParameter::isVariadic — Verifica se o parâmetro é variado
  - ReflectionParameter::__toString — Para string
- ReflectionProperty — A classe ReflectionProperty
  - ReflectionProperty::__clone — Clone
  - ReflectionProperty::__construct — Constrói um objeto ReflectionProperty
  - ReflectionProperty::export — Exporta
  - ReflectionProperty::getAttributes — Obtém atributos
  - ReflectionProperty::getDeclaringClass — Obtém a classe declarada
  - ReflectionProperty::getDefaultValue — Retorna o valor padrão declarado para uma propriedade
  - ReflectionProperty::getDocComment — Obtém o comentário doc da propriedade
  - ReflectionProperty::getHook — Retorna um objeto de reflexão para um gancho especificado
  - ReflectionProperty::getHooks — Retorna um array de todos os ganchos nesta propriedade
  - ReflectionProperty::getModifiers — Obtém os modificadores de propriedade
  - ReflectionProperty::getName — Obtém o nome da propriedade
  - ReflectionProperty::getRawValue — Retorna o valor de uma propriedade, ignorando um gancho get se definido
  - ReflectionProperty::getSettableType — Retorna o tipo de parâmetro de um gancho set
  - ReflectionProperty::getType — Obtém o tipo de uma propriedade
  - ReflectionProperty::getValue — Obtém o valor
  - ReflectionProperty::hasDefaultValue — Verifica se a propriedade tem um valor padrão declarado
  - ReflectionProperty::hasHook — Retorna se a propriedade tem um determinado gancho definido
  - ReflectionProperty::hasHooks — Retorna se a propriedade tem algum gancho definido
  - ReflectionProperty::hasType — Verifica se a propriedade tem um tipo
  - ReflectionProperty::isAbstract — Determina se uma propriedade é abstrata
  - ReflectionProperty::isDefault — Verifica se a propriedade é uma propriedade padrão
  - ReflectionProperty::isDynamic — Verifica se a propriedade é dinâmica
  - ReflectionProperty::isFinal — Determina se esta propriedade é final ou não
  - ReflectionProperty::isInitialized — Verifica se uma propriedade foi inicializada
  - ReflectionProperty::isLazy — Verifica se uma propriedade é lenta
  - ReflectionProperty::isPrivate — Verifica se a propriedade é privada
  - ReflectionProperty::isPrivateSet — Verifica se a propriedade é privada para escrita
  - ReflectionProperty::isPromoted — Verifica se a propriedade é promovida
  - ReflectionProperty::isProtected — Verifica se a propriedade é protegida
  - ReflectionProperty::isProtectedSet — Verifica se a propriedade está protegida para escrita
  - ReflectionProperty::isPublic — Verifica se a propriedade é pública
  - ReflectionProperty::isReadOnly — Verifica se a propriedade é somente leitura
  - ReflectionProperty::isStatic — Verifica se a propriedade é estática
  - ReflectionProperty::isVirtual — Determina se uma propriedade é virtual
  - ReflectionProperty::setAccessible — Define acessibilidade da propriedade
  - ReflectionProperty::setRawValue — Define o valor de uma propriedade, ignorando um gancho de configuração se definido
  - ReflectionProperty::setRawValueWithoutLazyInitialization — Define o valor bruto da propriedade sem acionar a inicialização lenta
  - ReflectionProperty::setValue — Define valor da propriedade
  - ReflectionProperty::skipLazyInitialization — Marca a propriedade como não lenta
  - ReflectionProperty::__toString — Para string
- ReflectionType — A classe ReflectionType
  - ReflectionType::allowsNull — Verifica se nulo é permitido
  - ReflectionType::__toString — Para string
- ReflectionUnionType — A classe ReflectionUnionType
  - ReflectionUnionType::getTypes — Retorna os tipos incluídos no tipo de união
- ReflectionGenerator — A classe ReflectionGenerator
  - ReflectionGenerator::__construct — Constrói um objeto ReflectionGenerator
  - ReflectionGenerator::getExecutingFile — Obtém o nome do arquivo do gerador atualmente em execução
  - ReflectionGenerator::getExecutingGenerator — Obtém o objeto Generator em execução
  - ReflectionGenerator::getExecutingLine — Obtém a linha do gerador atualmente em execução
  - ReflectionGenerator::getFunction — Obtém o nome da função do gerador
  - ReflectionGenerator::getThis — Obtém o valor $this do gerador
  - ReflectionGenerator::getTrace — Obtém o rastreamento do gerador em execução
  - ReflectionGenerator::isClosed — Verifica se a execução terminou
- ReflectionFiber — A classe ReflectionFiber
  - ReflectionFiber::__construct — Constrói um objeto ReflectionFiber
  - ReflectionFiber::getCallable — Obtém o callable usado para criar o Fiber
  - ReflectionFiber::getExecutingFile — Obtém o nome do arquivo do ponto de execução atual
  - ReflectionFiber::getExecutingLine — Obtém o número da linha do ponto de execução atual
  - ReflectionFiber::getFiber — Obtém a instância do Fiber refletida
  - ReflectionFiber::getTrace — Obtém o rastreamento do ponto de execução atual
- ReflectionIntersectionType — A classe ReflectionIntersectionType
  - ReflectionIntersectionType::getTypes — Retorna os tipos incluídos no tipo de interseção
- ReflectionReference — A classe ReflectionReference
  - ReflectionReference::__construct — Construtor privado para proibir instanciação direta
  - ReflectionReference::fromArrayElement — Cria um ReflectionReference a partir de um elemento de array
  - ReflectionReference::getId — Obtém ID exclusivo de uma referência
- ReflectionAttribute — A classe ReflectionAttribute
  - ReflectionAttribute::__construct — Construtor privado para evitar a instanciação direta
  - ReflectionAttribute::getArguments — Obtém os argumentos passados para o atributo
  - ReflectionAttribute::getName — Obtém o nome do atributo
  - ReflectionAttribute::getTarget — Retorna o alvo do atributo como uma máscara de bits
  - ReflectionAttribute::isRepeated — Retorna se o atributo deste nome foi repetido em um elemento de código
  - ReflectionAttribute::newInstance — Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos
- Reflector — A interface Reflector
  - Reflector::export — Exporta
- ReflectionException — Classe ReflectionException
- PropertyHookType — A enumeração PropertyHookType

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open