Sobes.tech
Middle

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.