PHP contro Ruby

PHP e Ruby sono linguaggi di scripting lato server - più comunemente usati per sviluppare pagine Web.

Tabella di confronto

Grafico comparativo PHP contro Ruby
PHP Rubino
Delimitatore di blocco dei commenti/* e */= inizio e = fine; anche qualsiasi testo dopo __END__
Terminatori di dichiarazioniPunto e virgola terminatoNewline terminato
Matrici dimensionate dinamicamente
Delimitatore di commenti in linea// e ##
Classi
Operatore di concatenazione di stringhe. (punto)+ (il segno più)
Paradigmi di programmazioneimperativo, orientato agli oggetti, riflessivoImperativo, orientato agli oggetti, riflessivo, orientato all'aspetto, funzionale
OOP (programmazione orientata agli oggetti)Sì, singola eredità.Sì, ma non è necessario.
Matrici multidimensionali supportate
Accesso agli elementi dell'array$ Array [i]array [i]
Tipo di controlloDinamicoDinamico
Sintassi per la lunghezza della stringastrlen ($ string)string.size o string.length
Raccolta dei rifiuti
Operazioni vettorializzate
Sintassi del confronto delle stringhestrcmp ($ string1, $ string2)stringa1 stringa2
Sintassi del test sull'uguaglianza delle stringhe$ string1 == $ string2string1 == string2
DigitandoDigitazione deboleFortemente tipizzato
Sintassi della ricerca di stringhestrpos ($ string, $ substring [, startpos]) restituisce FALSE se l'elemento di ricerca ($ substring) non viene trovatostring.index (substring [, startpos]) restituisce zero se l'elemento di ricerca (substring) non viene trovato
Sintassi della formattazione delle stringhesprintf (formattazione, elementi)sprintf (formattazione, elementi)
Sintassi per unire una matrice di stringheimplode (separator, array_of_strings)array_of_strings.join (separatore)
Sintassi per sottostringasubstr (stringa, startpos, numChars)stringa [startpos, numChars]
Sintassi per la ricerca e la sostituzione all'interno della stringastr_replace ($ find, $ replace, $ string)string.gsub (trova, sostituisci)
Destinazione d'usoApplicazioni Web, CLIApplicazioni, scripting
Sintassi per invertire una stringastrrev ($ string)string.reverse
Obiettivi di progettazione del linguaggioRobustezza e semplicitàEspressività, leggibilità
Sintassi per convertire la stringa in maiuscolostrtoupper ($ string)string.upcase
Esempi di utilizzoWordPress, WikipediaIndiegogo, Hulu

Matrici associative in PHP contro Ruby

PHP

Il tipo di array incorporato di PHP è in realtà un array associativo. Anche quando si utilizzano indici numerici, PHP lo memorizza internamente come un array associativo. Questo è il motivo per cui uno in PHP può avere array indicizzati numericamente non consecutivi. Le chiavi devono essere valori scalari (stringa, numero in virgola mobile o intero), mentre i valori possono essere di tipo arbitrario, inclusi altri array e oggetti. Le matrici sono eterogenee; un singolo array può avere chiavi di diversi tipi. Gli array associativi di PHP possono essere utilizzati per rappresentare alberi, elenchi, stack, code e altre strutture di dati comuni non integrate in PHP.

In PHP, un array associativo può essere formato in due modi:

 $ phonebook = array (); $ phonebook ['Sally Smart'] = '555-9999'; $ phonebook ['John Doe'] = '555-1212'; $ Rubrica [ 'J. Random Hacker '] =' 555-1337 '; // o $ rubrica = array ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Random Hacker' => '555-1337', ); // o $ rubrica ['contatti'] ['Sally Smart'] ['number'] = '555-9999'; $ phonebook ['contatti'] ['John Doe'] ['number'] = '555-1212'; $ Rubrica [ 'contatti'] [ 'J. Random Hacker '] [' number '] =' 555-1337 '; 

Puoi anche eseguire il loop in un array associativo in PHP come segue:

 foreach ($ rubrica come $ nome => $ numero) {echo "Numero per $ nome: $ numero \ n"; } 
 // Per l'ultimo esempio di array, viene usato come foreach ($ phonebook ['contatti'] come $ name => $ num) {echo "Name: {$ name}"; echo "Numero: {$ num ['number']}"; } 

PHP ha un ampio set di funzioni per operare su array.

Rubino

In Ruby un array associato è chiamato Hash e viene usato come segue:

 rubrica = {'Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Hacker casuale '=>' 553-1337 '} 

phonebook['John Doe'] produce '555-1212'

Per scorrere l'hash, utilizzare qualcosa di simile al seguente:

 phonebook.each mette la chiave + "=>" + valore 

Inoltre, ogni tasto può essere mostrato singolarmente:

 phonebook.each_key key 

Ogni valore può anche essere mostrato:

 phonebook.each_value inserisce valore 

Articoli Correlati