Sublinhado no php função
-
10-07-2019 - |
Pergunta
O que significa quando um nome de função PHP começa com um sublinhado?
Por exemplo: __construct()
Eu sei o que os meios construto mas eu vi outros lugares onde a função começa com um sublinhado, ou um sublinhado duplo e eu não sou apenas certo do significado.
Solução
Isso significa que o PHP chama-lhe implicitamente.
É chamado de um 'método mágico'
Além disso, é dois sublinhados, não um.
Saiba mais aqui: PHP mágicos Métodos
Outras dicas
Em PHP, funções começar com dois sublinhados geralmente têm significados especiais. A partir do manual:
PHP reserva todos os nomes de função começando com __ como mágicas. Isto é recomendável que você não use nomes de função com __ no PHP a menos Você quer um pouco de magia documentado funcionalidade.
Por exemplo __construct () é um método especial que é chamado automaticamente ao inicializar um objecto.
Se também: http://php.net/manual/en/ language.oop5.magic.php
Há também uma nomenclatura comum "estilo de codificação", que usa um sublinhado inicial para indicar métodos ou propriedades são privadas / protegido. Eu acho que é bastante difundido.
Como observado em outras respostas, o duplo sublinhado é usado para métodos "mágicos". A idéia é que o usuário nunca usaria intencionalmente dois sublinhados para um nome de método, por isso há pouco risco de colisão. A razão não é um único sublinhado, creio eu, é que o único sublinhado era uma convenção popular para métodos privados no mau (DER) e velhos tempos, antes da palavra-chave 'privada' veio para impor OO caráter privado.
Em codeigniter, se você começar um método em um controlador com um sublinhado, o roteador irá saber para não permitir que ele seja acessado a partir da url.