O que é ligação estática no contexto da programação?
sobes.tech IA
Resposta da IA
A ligação estática (ligação precoce) é a definição da correspondência entre uma chamada de método ou função e a sua implementação durante a compilação ou ligação do programa, antes da sua execução real.
No contexto do PHP, que é uma linguagem interpretada, a ligação estática geralmente refere-se à definição de chamadas a métodos estáticos e acesso a propriedades estáticas.
Vantagens:
- Melhor desempenho: não é necessário tempo adicional para determinar o método ou propriedade chamado durante a execução.
- Detecção precoce de erros: erros relacionados com métodos ou propriedades inexistentes são detectados na fase de análise do código.
Desvantagens:
- Menor flexibilidade: é difícil implementar polimorfismo baseado em ligação estática.
Exemplo de ligação estática em PHP:
<?php
class MyClass {
public static $staticProperty = 'valor estático';
public static function staticMethod() {
return 'método estático chamado';
}
}
// Ligação estática: a chamada ao método e o acesso à propriedade são determinados antes da execução
echo MyClass::staticMethod();
echo MyClass::$staticProperty;
Ao contrário da ligação estática, a ligação dinâmica (ligação tardia) define a correspondência entre a chamada e a implementação em tempo de execução do programa. Em PHP, a ligação dinâmica é usada para chamadas a métodos normais de objetos. PHP também suporta ligação estática tardia (Late Static Binding) usando a palavra-chave static:: para definir de forma mais flexível o contexto de chamada de métodos estáticos numa hierarquia de herança.