PHP für C-Entwickler

Die einfachste Art, sich PHP vorzustellen, ist das interpretierte C, das Sie in HTML-Dokumente einbetten können. Die Sprache selbst ist C sehr ähnlich, außer dass untypisierte Variablen, eine ganze Reihe von webspezifischen Bibliotheken integriert sind und alles direkt mit Ihrem bevorzugten Webserver verbunden ist.

Die Syntax von Anweisungen und Funktionsdefinitionen sollte bekannt sein, außer dass Variablen immer $ vorangestellt sind und für Funktionen keine separaten Prototypen erforderlich sind.

Hier werden wir einige Ähnlichkeiten und Unterschiede in PHP und C setzen

Ähnlichkeiten

  • Syntax- Im Großen und Ganzen ist die PHP-Syntax dieselbe wie in C: Code ist leer unempfindlich, Anweisungen werden mit Semikolons abgeschlossen, Funktionsaufrufe haben dieselbe Struktur (my_function (expression1, expression2)) und geschweifte Klammern ({und}) machen Anweisungen Blöcke. PHP unterstützt Kommentare im C- und C ++ - Stil (/ * * / sowie //) sowie den Perl- und Shell-Skriptstil (#).

  • Operators - Die Zuweisungsoperatoren (=, + =, * = usw.), die Booleschen Operatoren (&&, || ,!), Die Vergleichsoperatoren (<,>, <=,> =, == ,! =) und die grundlegenden arithmetischen Operatoren (+, -, *, /,%) verhalten sich in PHP alle wie in C.

  • Control structures- Die grundlegenden Kontrollstrukturen (if, switch, while, for) verhalten sich wie in C, einschließlich der Unterstützung von break und continue. Ein bemerkenswerter Unterschied besteht darin, dass Switch in PHP Zeichenfolgen als Fallbezeichner akzeptieren kann.

  • Function names - Während Sie die Dokumentation lesen, werden Sie viele Funktionsnamen sehen, die mit C-Funktionen identisch zu sein scheinen.

Unterschiede

  • Dollar signs- Alle Variablen sind mit einem führenden $ gekennzeichnet. Variablen müssen nicht vor der Zuweisung deklariert werden und haben keinen intrinsischen Typ.

  • Types- PHP hat nur zwei numerische Typen: Integer (entsprechend einem Long in C) und Double (entsprechend einem Double in C). Saiten haben eine beliebige Länge. Es gibt keinen separaten Zeichentyp.

  • Type conversion- Typen werden zur Kompilierungszeit nicht überprüft, und Typfehler treten normalerweise auch zur Laufzeit nicht auf. Stattdessen werden Variablen und Werte bei Bedarf automatisch typübergreifend konvertiert.

  • Arrays- Arrays haben eine Syntax, die der Array-Syntax von C oberflächlich ähnlich ist, aber völlig anders implementiert ist. Sie sind tatsächlich assoziative Arrays oder Hashes, und der Index kann entweder eine Zahl oder eine Zeichenfolge sein. Sie müssen nicht im Voraus deklariert oder vergeben werden.

  • No structure type- In PHP gibt es keine Struktur, auch weil die Array- und Objekttypen zusammen dies unnötig machen. Die Elemente eines PHP-Arrays müssen nicht von einem konsistenten Typ sein.

  • No pointers- In PHP sind keine Zeiger verfügbar, obwohl die bandlosen Variablen eine ähnliche Rolle spielen. PHP unterstützt Variablenreferenzen. In gewissem Umfang können Sie auch Funktionszeiger emulieren, indem Funktionsnamen in Variablen gespeichert und mithilfe der Variablen anstelle eines Literalnamens aufgerufen werden können.

  • No prototypes - Funktionen müssen nicht deklariert werden, bevor ihre Implementierung definiert wird, solange sich die Definition irgendwo in der aktuellen Codedatei oder den enthaltenen Dateien befindet.

  • Memory management- Die PHP-Engine ist praktisch eine Müllsammelumgebung (mit Referenzzählung), und in kleinen Skripten ist keine Freigabe erforderlich. Sie sollten neue Strukturen frei zuweisen, z. B. neue Zeichenfolgen und Objektinstanzen. In PHP5 ist es möglich, Destruktoren für Objekte zu definieren, aber es gibt keine freien oder Löschvorgänge. Destruktoren werden aufgerufen, wenn der letzte Verweis auf ein Objekt verschwindet, bevor der Speicher zurückgefordert wird.

  • Compilation and linking - Es gibt keinen separaten Kompilierungsschritt für PHP-Skripte.

  • Permissiveness- Im Allgemeinen ist PHP verzeihender als C (insbesondere in seinem Typensystem) und lässt Sie mit neuen Arten von Fehlern davonkommen. Unerwartete Ergebnisse sind häufiger als Fehler.