PHP per sviluppatori C.

Il modo più semplice per pensare a PHP è come interpretato il C che puoi incorporare nei documenti HTML. Il linguaggio stesso è molto simile al C, tranne che con variabili non tipizzate, un sacco di librerie specifiche per il Web integrate e tutto collegato direttamente al tuo server Web preferito.

La sintassi delle istruzioni e delle definizioni delle funzioni dovrebbe essere familiare, tranne per il fatto che le variabili sono sempre precedute da $ e le funzioni non richiedono prototipi separati.

Qui metteremo alcune somiglianze e differenze in PHP e C

Somiglianze

  • Syntax- In generale, la sintassi PHP è la stessa di C: il codice non è sensibile agli spazi, le istruzioni terminano con punto e virgola, le chiamate di funzione hanno la stessa struttura (my_function (espressione1, espressione2)) e le parentesi graffe ({e}) fanno dichiarazioni in blocchi. PHP supporta i commenti in stile C e C ++ (/ * * / così come //), e anche Perl e lo stile di script di shell (#).

  • Operators - Gli operatori di assegnazione (=, + =, * = e così via), gli operatori booleani (&&, ||,!), Gli operatori di confronto (<,>, <=,> =, ==,! =) e gli operatori aritmetici di base (+, -, *, /,%) si comportano tutti in PHP come in C.

  • Control structures- Le strutture di controllo di base (if, switch, while, for) si comportano come in C, incluso il supporto break e continue. Una differenza notevole è che lo switch in PHP può accettare stringhe come identificatori di case.

  • Function names - Mentre esamini la documentazione, vedrai molti nomi di funzioni che sembrano identici alle funzioni C.

Differenze

  • Dollar signs- Tutte le variabili sono indicate con un $ iniziale. Le variabili non devono essere dichiarate prima dell'assegnazione e non hanno un tipo intrinseco.

  • Types- PHP ha solo due tipi numerici: intero (corrispondente a un lungo in C) e doppio (corrispondente a un doppio in C). Le stringhe sono di lunghezza arbitraria. Non esiste un tipo di carattere separato.

  • Type conversion- I tipi non vengono controllati in fase di compilazione e gli errori di tipo non si verificano in genere neanche in fase di esecuzione. Invece, le variabili e i valori vengono convertiti automaticamente tra i tipi secondo necessità.

  • Arrays- Gli array hanno una sintassi superficialmente simile alla sintassi degli array del C, ma sono implementati in modo completamente diverso. In realtà sono array o hash associativi e l'indice può essere un numero o una stringa. Non è necessario dichiararli o assegnarli in anticipo.

  • No structure type- Non esiste una struttura in PHP, in parte perché i tipi di array e di oggetti insieme lo rendono non necessario. Gli elementi di un array PHP non devono essere di tipo coerente.

  • No pointers- Non ci sono puntatori disponibili in PHP, sebbene le variabili tapeless giochino un ruolo simile. PHP supporta i riferimenti alle variabili. È anche possibile emulare i puntatori a funzione in una certa misura, in quanto i nomi delle funzioni possono essere memorizzati in variabili e chiamati utilizzando la variabile piuttosto che un nome letterale.

  • No prototypes - Le funzioni non devono essere dichiarate prima che la loro implementazione sia definita, a condizione che la definizione possa essere trovata da qualche parte nel file di codice corrente o nei file inclusi.

  • Memory management- Il motore PHP è effettivamente un ambiente raccolto da rifiuti (conteggio dei riferimenti) e in piccoli script non è necessario eseguire alcuna deallocazione. Dovresti allocare liberamente nuove strutture, come nuove stringhe e istanze di oggetti. IN PHP5, è possibile definire il distruttore per gli oggetti, ma non esiste alcun free o delete. I distruttori vengono chiamati quando l'ultimo riferimento a un oggetto scompare, prima che la memoria venga recuperata.

  • Compilation and linking - Non esiste un passaggio di compilazione separato per gli script PHP.

  • Permissiveness- In generale, PHP è più indulgente di C (specialmente nel suo sistema di tipi) e quindi ti permetterà di farla franca con nuovi tipi di errori. I risultati imprevisti sono più comuni degli errori.