PHP para desenvolvedores C

A maneira mais simples de pensar em PHP é interpretado como C, que você pode incorporar em documentos HTML. A linguagem em si é muito parecida com C, exceto com variáveis ​​não digitadas, um monte de bibliotecas específicas da Web integradas e tudo conectado diretamente ao seu servidor Web favorito.

A sintaxe das instruções e definições de função deve ser familiar, exceto que as variáveis ​​são sempre precedidas por $ e as funções não requerem protótipos separados.

Aqui vamos colocar algumas semelhanças e diferenças em PHP e C

Semelhanças

  • Syntax- De um modo geral, a sintaxe do PHP é a mesma que em C: o código não é sensível a espaços em branco, as instruções são encerradas com ponto-e-vírgula, as chamadas de função têm a mesma estrutura (minha_função (expressão1, expressão2)) e as chaves ({e}) transformam as declarações em blocos. PHP suporta comentários no estilo C e C ++ (/ * * / bem como //), e também no estilo Perl e shell-script (#).

  • Operators - Os operadores de atribuição (=, + =, * = e assim por diante), os operadores booleanos (&&, ||,!), Os operadores de comparação (<,>, <=,> =, ==,! =) , e os operadores aritméticos básicos (+, -, *, /,%) se comportam em PHP da mesma forma que em C.

  • Control structures- As estruturas básicas de controle (if, switch, while, for) se comportam como em C, incluindo suporte para interromper e continuar. Uma diferença notável é que a mudança no PHP pode aceitar strings como identificadores de caso.

  • Function names - Conforme você examina a documentação, verá muitos nomes de funções que parecem idênticos às funções C.

Diferenças

  • Dollar signs- Todas as variáveis ​​são denotadas com um $ à esquerda. As variáveis ​​não precisam ser declaradas antes da atribuição e não têm tipo intrínseco.

  • Types- PHP tem apenas dois tipos numéricos: inteiro (correspondendo a um longo em C) e duplo (correspondendo a um duplo em C). As cordas são de comprimento arbitrário. Não há um tipo de caractere separado.

  • Type conversion- Os tipos não são verificados em tempo de compilação e os erros de tipo também não ocorrem normalmente em tempo de execução. Em vez disso, as variáveis ​​e os valores são convertidos automaticamente nos tipos, conforme necessário.

  • Arrays- Os arrays têm uma sintaxe superficialmente semelhante à sintaxe de array do C, mas são implementados de maneira completamente diferente. Eles são, na verdade, matrizes associativas ou hashes, e o índice pode ser um número ou uma string. Eles não precisam ser declarados ou alocados com antecedência.

  • No structure type- Não há estrutura no PHP, em parte porque os tipos de array e objeto juntos tornam isso desnecessário. Os elementos de um array PHP não precisam ser de um tipo consistente.

  • No pointers- Não há ponteiros disponíveis no PHP, embora as variáveis ​​sem fita desempenhem um papel semelhante. PHP suporta referências de variáveis. Você também pode emular ponteiros de função até certo ponto, em que os nomes de função podem ser armazenados em variáveis ​​e chamados usando a variável em vez de um nome literal.

  • No prototypes - As funções não precisam ser declaradas antes de sua implementação ser definida, contanto que a definição possa ser encontrada em algum lugar no arquivo de código atual ou nos arquivos incluídos.

  • Memory management- O mecanismo PHP é efetivamente um ambiente de coleta de lixo (contagem de referência) e em pequenos scripts não há necessidade de desalocar. Você deve alocar livremente novas estruturas - como novas strings e instâncias de objetos. No PHP5, é possível definir destruidor para objetos, mas não existe free ou delete. Destruidores são chamados quando a última referência a um objeto vai embora, antes que a memória seja recuperada.

  • Compilation and linking - Não há etapa de compilação separada para scripts PHP.

  • Permissiveness- Como uma questão geral, o PHP é mais tolerante do que o C (especialmente em seu sistema de tipos) e, portanto, permitirá que você cometa novos tipos de erros. Resultados inesperados são mais comuns do que erros.