PHP dla programistów C.

Najprostszym sposobem myślenia o PHP jest interpretacja języka C, którą można osadzić w dokumentach HTML. Sam język jest bardzo podobny do C, z wyjątkiem nietypowych zmiennych, wielu wbudowanych bibliotek internetowych i wszystkiego, co jest bezpośrednio podłączone do twojego ulubionego serwera WWW.

Składnia instrukcji i definicje funkcji powinna być znajoma, z wyjątkiem tego, że zmienne są zawsze poprzedzone znakiem $, a funkcje nie wymagają oddzielnych prototypów.

Tutaj umieścimy kilka podobieństw i różnic w PHP i C

Podobieństwa

  • Syntax- Ogólnie rzecz biorąc, składnia PHP jest taka sama jak w C: Kod jest niewrażliwy na puste znaki, instrukcje są zakończone średnikami, wywołania funkcji mają tę samą strukturę (moja_funkcja (wyrażenie1, wyrażenie2)), a nawiasy klamrowe ({i}) tworzą instrukcje w Bloki. PHP obsługuje komentarze w stylu C i C ++ (/ * * / oraz //), a także Perl i styl skryptu powłoki (#).

  • Operators - Operatory przypisania (=, + =, * = i tak dalej), operatory boolowskie (&&, ||,!), Operatory porównania (<,>, <=,> =, ==,! =) , a podstawowe operatory arytmetyczne (+, -, *, /,%) zachowują się w PHP tak, jak w C.

  • Control structures- Podstawowe struktury kontrolne (if, switch, while, for) zachowują się tak, jak w C, w tym obsługują przerwanie i kontynuowanie. Jedną zauważalną różnicą jest to, że przełącznik w PHP może akceptować ciągi znaków jako identyfikatory wielkości liter.

  • Function names - Podczas przeglądania dokumentacji zobaczysz wiele nazw funkcji, które wydają się identyczne z funkcjami C.

Różnice

  • Dollar signs- Wszystkie zmienne są oznaczone początkowym znakiem $. Zmienne nie muszą być deklarowane przed przypisaniem i nie mają typu wewnętrznego.

  • Types- PHP ma tylko dwa typy liczbowe: integer (odpowiadający long w C) i double (odpowiadający double w C). Struny mają dowolną długość. Nie ma oddzielnego typu znaków.

  • Type conversion- Typy nie są sprawdzane w czasie kompilacji, a błędy typu zazwyczaj nie występują również w czasie wykonywania. Zamiast tego zmienne i wartości są w razie potrzeby automatycznie konwertowane na różne typy.

  • Arrays- Tablice mają składnię powierzchownie podobną do składni tablic w języku C, ale są implementowane zupełnie inaczej. W rzeczywistości są to tablice asocjacyjne lub skróty, a indeks może być liczbą lub ciągiem. Nie trzeba ich wcześniej zgłaszać ani przydzielać.

  • No structure type- W PHP nie ma żadnej struktury, częściowo dlatego, że tablice i typy obiektów razem sprawiają, że jest to niepotrzebne. Elementy tablicy PHP nie muszą być spójnego typu.

  • No pointers- W PHP nie ma wskaźników, chociaż zmienne beztaśmowe odgrywają podobną rolę. PHP obsługuje odwołania do zmiennych. Do pewnego stopnia można również emulować wskaźniki funkcji, w tym przypadku nazwy funkcji mogą być przechowywane w zmiennych i wywoływane przy użyciu zmiennej zamiast nazwy literału.

  • No prototypes - Funkcje nie muszą być deklarowane przed zdefiniowaniem ich implementacji, o ile definicję można znaleźć gdzieś w bieżącym pliku kodu lub dołączonych plikach.

  • Memory management- Silnik PHP jest w rzeczywistości środowiskiem zbieranym bezużytecznie (liczonym jako referencje), aw małych skryptach nie ma potrzeby cofania alokacji. Powinieneś swobodnie przydzielać nowe struktury - takie jak nowe łańcuchy i instancje obiektów. W PHP5 można zdefiniować destruktor dla obiektów, ale nie ma możliwości zwolnienia ani usunięcia. Destructor są wywoływane, gdy ostatnie odwołanie do obiektu zniknie, zanim pamięć zostanie odzyskana.

  • Compilation and linking - Nie ma oddzielnego kroku kompilacji dla skryptów PHP.

  • Permissiveness- Ogólnie rzecz biorąc, PHP jest bardziej wyrozumiałe niż C (szczególnie w swoim systemie typów), więc pozwoli ci uniknąć nowych rodzajów błędów. Nieoczekiwane wyniki są częstsze niż błędy.