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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top