PHP para desarrolladores de C

La forma más sencilla de pensar en PHP es interpretar la C que puede incrustar en documentos HTML. El lenguaje en sí es muy parecido a C, excepto que tiene variables sin tipo, una gran cantidad de bibliotecas específicas de Web integradas y todo conectado directamente a su servidor Web favorito.

La sintaxis de los enunciados y las definiciones de funciones deben ser familiares, excepto que las variables siempre van precedidas de $ y las funciones no requieren prototipos separados.

Aquí pondremos algunas similitudes y diferencias en PHP y C

Similitudes

  • Syntax- En términos generales, la sintaxis de PHP es la misma que en C: el código es insensible al espacio en blanco, las declaraciones terminan con punto y coma, las llamadas a funciones tienen la misma estructura (my_function (expresión1, expresión2)) y las llaves ({y}) hacen declaraciones en bloques. PHP admite comentarios de estilo C y C ++ (/ * * / así como //), y también estilo Perl y script de shell (#).

  • Operators - Los operadores de asignación (=, + =, * =, etc.), los operadores booleanos (&&, ||,!), Los operadores de comparación (<,>, <=,> =, ==,! =) , y los operadores aritméticos básicos (+, -, *, /,%) se comportan en PHP como lo hacen en C.

  • Control structures- Las estructuras de control básicas (if, switch, while, for) se comportan como lo hacen en C, incluido el apoyo a romper y continuar. Una diferencia notable es que el switch en PHP puede aceptar cadenas como identificadores de casos.

  • Function names - A medida que examina la documentación, verá muchos nombres de funciones que parecen idénticos a las funciones de C.

Diferencias

  • Dollar signs- Todas las variables se indican con un $ inicial. No es necesario declarar las variables antes de la asignación y no tienen un tipo intrínseco.

  • Types- PHP tiene solo dos tipos numéricos: entero (correspondiente a un largo en C) y doble (correspondiente a un doble en C). Las cadenas tienen una longitud arbitraria. No hay un tipo de carácter separado.

  • Type conversion- Los tipos no se comprueban en tiempo de compilación y los errores de tipo tampoco suelen ocurrir en tiempo de ejecución. En cambio, las variables y los valores se convierten automáticamente entre tipos según sea necesario.

  • Arrays- Las matrices tienen una sintaxis superficialmente similar a la sintaxis de matrices de C, pero se implementan de manera completamente diferente. En realidad, son matrices asociativas o hashes, y el índice puede ser un número o una cadena. No es necesario declararlos ni asignarlos por adelantado.

  • No structure type- No hay estructura en PHP, en parte porque los tipos de matriz y objeto juntos lo hacen innecesario. Los elementos de una matriz de PHP no necesitan ser de un tipo consistente.

  • No pointers- No hay punteros disponibles en PHP, aunque las variables sin cinta juegan un papel similar. PHP admite referencias de variables. También puede emular punteros a funciones hasta cierto punto, ya que los nombres de las funciones se pueden almacenar en variables y se pueden llamar utilizando la variable en lugar de un nombre literal.

  • No prototypes - No es necesario declarar las funciones antes de definir su implementación, siempre que la definición se pueda encontrar en algún lugar del archivo de código actual o de los archivos incluidos.

  • Memory management- El motor PHP es efectivamente un entorno de recolección de basura (contado por referencias), y en scripts pequeños no hay necesidad de realizar ninguna desasignación. Debe asignar libremente nuevas estructuras, como nuevas cadenas e instancias de objetos. EN PHP5, es posible definir destructor para objetos, pero no hay libre ni borrar. Los destructores se llaman cuando desaparece la última referencia a un objeto, antes de que se recupere la memoria.

  • Compilation and linking - No hay un paso de compilación independiente para los scripts PHP.

  • Permissiveness- Como cuestión general, PHP es más indulgente que C (especialmente en su sistema de tipos) y, por tanto, le permitirá salirse con la suya con nuevos tipos de errores. Los resultados inesperados son más comunes que los errores.