PHP cho nhà phát triển C
Cách đơn giản nhất để nghĩ về PHP là C được hiểu là C mà bạn có thể nhúng vào các tài liệu HTML. Bản thân ngôn ngữ này rất giống C, ngoại trừ các biến không được định kiểu, rất nhiều thư viện dành riêng cho Web được tích hợp sẵn và mọi thứ được kết nối trực tiếp với máy chủ Web yêu thích của bạn.
Cú pháp của câu lệnh và định nghĩa hàm nên quen thuộc, ngoại trừ các biến luôn đứng trước $ và các hàm không yêu cầu các nguyên mẫu riêng biệt.
Ở đây chúng tôi sẽ đưa ra một số điểm giống và khác nhau trong PHP và C
Điểm tương đồng
Syntax- Nói rộng ra, cú pháp PHP giống như trong C: Code trống không nhạy cảm, các câu lệnh được kết thúc bằng dấu chấm phẩy, các lệnh gọi hàm có cùng cấu trúc (my_ function (expression1, expression2)), và dấu ngoặc nhọn ({và}) thực hiện các câu lệnh thành các khối. PHP hỗ trợ C và C ++ - kiểu bình luận (/ * * / cũng như //), và cả kiểu Perl và shell-script (#).
Operators - Các toán tử gán (=, + =, * =, v.v.), toán tử Boolean (&&, ||,!), Toán tử so sánh (<,>, <=,> =, ==,! =) , và các toán tử số học cơ bản (+, -, *, /,%) đều hoạt động trong PHP giống như trong C.
Control structures- Các cấu trúc điều khiển cơ bản (if, switch, while, for) hoạt động như trong C, bao gồm hỗ trợ ngắt và tiếp tục. Một điểm khác biệt đáng chú ý là switch trong PHP có thể chấp nhận các chuỗi làm định danh trường hợp.
Function names - Khi xem xét tài liệu, bạn sẽ thấy nhiều tên hàm có vẻ giống với các hàm C.
Sự khác biệt
Dollar signs- Tất cả các biến được ký hiệu bằng $ đứng đầu. Các biến không cần phải được khai báo trước khi gán và chúng không có kiểu nội tại.
Types- PHP chỉ có hai kiểu số: integer (tương ứng với long trong C) và double (tương ứng với double trong C). Chuỗi có độ dài tùy ý. Không có kiểu ký tự riêng biệt.
Type conversion- Các kiểu không được kiểm tra tại thời điểm biên dịch và lỗi kiểu cũng không thường xảy ra trong thời gian chạy. Thay vào đó, các biến và giá trị được tự động chuyển đổi giữa các loại khi cần thiết.
Arrays- Mảng có cú pháp bề ngoài giống với cú pháp mảng của C, nhưng chúng được thực hiện hoàn toàn khác. Chúng thực sự là các mảng hoặc hàm băm kết hợp và chỉ mục có thể là một số hoặc một chuỗi. Chúng không cần phải được khai báo hoặc phân bổ trước.
No structure type- Không có cấu trúc trong PHP, một phần là do kiểu mảng và đối tượng kết hợp với nhau khiến nó không cần thiết. Các phần tử của một mảng PHP không cần phải có kiểu nhất quán.
No pointers- Không có con trỏ nào có sẵn trong PHP, mặc dù các biến không có vòi đóng một vai trò tương tự. PHP hỗ trợ các tham chiếu biến. Bạn cũng có thể mô phỏng các con trỏ hàm ở một mức độ nào đó, trong đó tên hàm có thể được lưu trữ trong các biến và được gọi bằng cách sử dụng biến thay vì tên theo nghĩa đen.
No prototypes - Các hàm không cần phải được khai báo trước khi việc triển khai của chúng được định nghĩa, miễn là định nghĩa có thể được tìm thấy ở đâu đó trong tệp mã hiện tại hoặc các tệp được bao gồm.
Memory management- PHP engine thực sự là một môi trường được thu thập rác (tính tham chiếu), và trong các tập lệnh nhỏ, không cần thực hiện bất kỳ sự phân bổ nào. Bạn nên tự do phân bổ các cấu trúc mới - chẳng hạn như các chuỗi mới và các cá thể đối tượng. TRONG PHP5, có thể định nghĩa hàm hủy cho các đối tượng, nhưng không có miễn phí hoặc xóa. Bộ hủy được gọi khi tham chiếu cuối cùng đến một đối tượng biến mất, trước khi bộ nhớ được lấy lại.
Compilation and linking - Không có bước biên dịch riêng cho các tập lệnh PHP.
Permissiveness- Như một vấn đề chung, PHP dễ tha thứ hơn C (đặc biệt là trong hệ thống kiểu của nó) và do đó sẽ cho phép bạn tránh xa các loại lỗi mới. Kết quả không mong muốn thường phổ biến hơn lỗi.