PHP y Ruby son lenguajes de script del lado del servidor, que se usan más comúnmente para desarrollar páginas web.
PHP | Rubí | |
---|---|---|
Bloquear comentarios delimitador | / * y * / | = comenzar y = terminar; también cualquier texto después de __END__ |
Terminadores de declaración | Punto y coma terminado | Nueva linea terminada |
Arreglos dinámicamente dimensionados | Sí | Sí |
Delimitador de comentarios en línea | // y # | # |
Las clases | Sí | Sí |
Operador de concatenacion de cuerdas | . (punto) | + (el signo más) |
Paradigmas de programacion | imperativo, orientado a objetos, reflexivo | Imperativo, orientado a objetos, reflexivo, orientado a aspectos, funcional |
OOP (Programación Orientada a Objetos) | Sí, herencia única.. | Sí, pero no tienes que. |
Arreglos multidimensionales soportados | Sí | Sí |
Acceso a elementos de matriz | $ array [i] | array [i] |
Verificación de tipos | Dinámica | Dinámica |
Sintaxis para la longitud de la cadena | strlen ($ string) | string.size o string.length |
Recolección de basura | Sí | Sí |
Operaciones vectorizadas | Sí | Sí |
Sintaxis de comparación de cadenas | strcmp ($ string1, $ string2) | string1 string2 |
Sintaxis de prueba de igualdad de cadenas | $ string1 == $ string2 | string1 == string2 |
Mecanografía | Tipificación débil | Fuertemente mecanografiado |
Sintaxis de búsqueda de cadenas | strpos ($ string, $ substring [, startpos]) devuelve FALSE si no se encontró el elemento de búsqueda ($ substring) | string.index (subcadena [, startpos]) devuelve nil si no se encuentra el elemento de búsqueda (subcadena) |
Sintaxis de formato de cadena | sprintf (formatstring, elementos) | sprintf (formatstring, elementos) |
Sintaxis para unir una matriz de cadenas | implode (separador, array_of_strings) | array_of_strings.join (separador) |
Sintaxis para subcadena | substr (string, startpos, numChars) | cadena [startpos, numChars] |
Sintaxis para buscar y reemplazar dentro de una cadena | str_replace ($ encontrar, $ reemplazar, $ cadena) | string.gsub (buscar, reemplazar) |
Uso previsto | Aplicaciones web, CLI | Aplicaciones, scripting |
Sintaxis para revertir una cadena | strrev ($ string) | string.reverse |
Objetivos de diseño de idiomas | Robustez y simplicidad. | Expresividad, legibilidad |
Sintaxis para convertir la cadena a mayúsculas | strtoupper ($ string) | string.upcase |
Ejemplos de uso | WordPress, Wikipedia | Indiegogo, Hulu |
El tipo de matriz integrado de PHP es en realidad una matriz asociativa. Incluso cuando se utilizan índices numéricos, PHP los almacena internamente como una matriz asociativa. Es por esto que uno en PHP puede tener matrices indexadas numéricamente no consecutivas. Las claves deben ser valores escalares (cadena, número de punto flotante o entero), mientras que los valores pueden ser de tipos arbitrarios, incluidos otros arreglos y objetos. Las matrices son heterogéneas; Una sola matriz puede tener claves de diferentes tipos. Las matrices asociativas de PHP se pueden usar para representar árboles, listas, pilas, colas y otras estructuras de datos comunes no incorporadas en PHP.
En PHP, una matriz asociativa se puede formar de una de dos maneras:
$ phonebook = array (); $ guía telefónica ['Sally Smart'] = '555-9999'; $ phonebook ['John Doe'] = '555-1212'; $ agenda ['J. Random Hacker '] =' 555-1337 '; // o $ phonebook = array ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Random Hacker' => '555-1337',); // o $ agenda ['contactos'] ['Sally Smart'] ['número'] = '555-9999'; $ agenda ['contactos'] ['John Doe'] ['número'] = '555-1212'; $ agenda ['contactos'] ['J. Random Hacker '] [' number '] =' 555-1337 ';
También puede recorrer una matriz asociativa en PHP de la siguiente manera:
foreach ($ agenda como $ nombre => $ número) echo "Número para $ nombre: $ número \ n";
// Para el último ejemplo de matriz, se usa así para foreach ($ phonebook ['contacts'] como $ name => $ num) echo "Name: $ name"; echo "Número: $ num ['número']";
PHP tiene un amplio conjunto de funciones para operar en arrays.
En Ruby, una matriz asociada se llama un hash y se usa de la siguiente manera:
agenda = 'Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Hacker aleatorio '=>' 553-1337 '
agenda ['John Doe']
produce '555-1212'
Para iterar sobre el hash, usa algo como lo siguiente:
phonebook.each | clave, valor | pone clave + "=>" + valor
Además, cada tecla puede ser mostrada individualmente:
phonebook.each_key | key | pone clave
Cada valor también se puede mostrar:
phonebook.each_value | value | pone valor