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.