Eu estava vasculhando alguns códigos e encontrei algumas ligações para mySQL_fetch_array
. O PHP diferencia maiúsculas de minúsculas em nomes de funções? Lembro-me de ter lido isso em algum lugar, mas não consigo encontrar qualquer referência a ele.
php
function
case-sensitive
Ben Dauphinee
fonte
fonte
Respostas:
Estou citando isto :
Então, parece que as funções definidas pelo usuário não diferenciam maiúsculas de minúsculas, houve uma votação para tornar as funções / objetos no PHP5 diferenciando maiúsculas de minúsculas.
fonte
Não.
As funções do PHP não diferenciam maiúsculas de minúsculas.
fonte
TL; DR: os nomes das classes não fazem distinção entre maiúsculas e minúsculas, mas usam sempre o mesmo caso que na declaração (o mesmo que com funções). Além disso, instanciar classes com maiúsculas e minúsculas conforme foram definidas pode causar problemas com os carregadores automáticos.
Além disso, os nomes das classes não diferenciam maiúsculas de minúsculas:
Isso resulta em:
O problema é usar carregadores automáticos e sistemas de arquivos com distinção entre maiúsculas e minúsculas (como ext2 / 3/4), em que você deve chamar o nome da classe com o mesmo caso em que o arquivo que contém a classe é nomeado (não como o nome da classe está realmente em maiúsculas), ou use
strtolower
:O arquivo da classe:
A função autoloader (
__autoload
ou uma função para registrarspl_autoload_register
)Agora com este código:
Você pode fazer este trabalho (ou seja, ter nomes de classe que não diferenciam maiúsculas de minúsculas usando um autoloader) se você adicionou uma chamada a
strtolower()
no código do autoloader, mas, como acontece com as funções, é melhor fazer referência a uma classe da mesma forma como ela é declarada, tenha o nome do arquivo com o mesmo caso do nome da classe, use autoloaders e esqueça de usarstrtolower
e similares.fonte
Não, eles não fazem distinção entre maiúsculas e minúsculas, no entanto, você deve sempre usar o caso que está no manual, para consistência.
No entanto, as variáveis diferenciam maiúsculas de minúsculas.
fonte
Em PHP, as variáveis diferenciam maiúsculas de minúsculas, mas as funções não têm problemas como este. Você pode usar as seguintes instruções para exibir a saída, todas mostrarão o mesmo resultado.
Por outro lado, se você alterar a diferenciação de maiúsculas e minúsculas das variáveis, ele mostrará o erro.
Exemplo:
Resultado:
fonte
E os nomes dos métodos também não diferenciam maiúsculas de minúsculas. por exemplo:-
resultado:
fonte
Concluindo a resposta de todos. Mesmo que o PHP não exija consistência de maiúsculas e minúsculas em todas as instâncias, até agora no PHP5.
A melhor prática será
Você nunca sabe que talvez um dia a votação passe e você salvará todo o pesadelo de mudar os casos em seus aplicativos feitos há alguns anos que requerem atualização em PHP.
Espero que ajude de alguma forma.
fonte
Pode ser tarde demais, mas ...
Todo mundo já sabe aqui: o motor PHP não se preocupa com maiúsculas e minúsculas.
E há a votação sobre o bugtracker do PHP, onde a maioria diz: "Sim, sou pró case sensetivity".
Mas estou contra, porque no meu framework MVC, chamo a ação do controlador:
$ controller e $ action são retirados da URL como estão.
Pense, se um usuário publicar um link para meu site: https: // my-site / MyPartnerController / MyPartnerGallery
enquanto a classe é chamada de myPartnerController ...
Isso significa que ninguém ganha esta página se os nomes das classes e funções do PHP forem sensíveis a maiúsculas e minúsculas.
Sim, sempre uso todos os nomes no código conforme declarado. Mas rezo para que eles nunca façam distinção entre maiúsculas e minúsculas nos nomes de funções e classes.
Obrigado!
fonte