PHP cho lập trình viên C

Cách đơn giản nhất để nghĩ về PHP là như C được thông dịch mà bạn có thể nhúng vào trong các tài liệu HTML. PHP khá giống C, ngoại trừ các biến không định kiểu, các thư viện cho riêng Web có sẵn, và mọi thứ được móc nối trực tiếp đến Web Server yêu thích của bạn.

Cú pháp các lệnh và định nghĩa hàm là khá tương tự, ngoại trừ các biến là luôn luôn được đặt trước bởi $, và hàm không yêu cầu nguyên mẫu riêng rẽ.

Dưới đây là một số điểm giống nhau và khác nhau giữa PHP và C:

Điểm giống nhau giữa PHP và C

  • Cú pháp − Nói chung, cú pháp PHP cũng giống như trong C: Code là không phân biệt khoảng trống (blank), lệnh được kết thúc bằng dấu chấm phảy, việc gọi hàm có cùng cấu trúc (my_function(expression1, expression2)), và dấu ngoặc nhọn ({and}) tạo các khối lệnh. PHP hỗ trợ các comment kiểu C và C ++ (/* */ cũng như //), và kiểu Perl và Shell-script (#).
  • Toán tử − Các toán tử gán (=, + =, * =, …), các toán tử, toán tử logic (&&, ||, !), toán tử so sánh (<,>, <=, >=, ==, !=), và các toán tử số học cơ bản (+, -, *, /,%) vận hành trong PHP như cách chúng làm trong C.
  • Cấu trúc điều khiển − Các cấu trúc điều khiển cơ bản (if, switch, while, for) vận hành như cách chúng làm trong C, bao gồm việc hỗ trợ break và continue. Một sự khác biệt đáng chú ý là switch trong PHP có thể chấp nhận chuỗi như là định danh.
  • Tên hàm − Khi bạn nghiên cứu Documentation về PHP, bạn sẽ thấy nhiều tên hàm mà dường như giống hệt với hàm C.

Điểm khác nhau giữa PHP và C

  • Ký hiệu $ − Tất cả các biến được đặt trước bởi một $. Các biến không cần được khai báo trước phép gán, và chúng không có kiểu nội tại.
  • Kiểu − PHP chỉ có hai kiểu số: Integer (tương ứng với một long trong C) và double (tương ứng với một double trong C). Chuỗi (string) có chiều dài tùy ý. Không có kiểu ký tự riêng lẻ.
  • Chuyển đổi kiểu − Kiểu không được kiểm tra tại compile time, và các lỗi về kiểu (type error) không xuất hiện tại runtime. Thay vào đó, biến và giá trị được tự động chuyển đổi kiểu khi cần.
  • Mảng (Array) − Mảng có một cú pháp bề ngoài tương tự như cú pháp mảng C, nhưng cách chúng được triển khai hoàn toàn khác nhau. Chúng thực sự là mảng liên hợp hoặc Hash, và chỉ mục có thể là một số hoặc một chuỗi. Chúng không cần được khai báo hoặc được cấp phát bộ nhớ trước.
  • Không có kiểu cấu trúc − Không có structure trong PHP, một phần vì các kiểu array và object cùng nhau làm cho nó không cần thiết. Các phần tử của một mảng trong PHP không là một kiểu đồng nhất.
  • Không có con trỏ − Không có con trỏ có sẵn trong PHP, mặc dù các biến đóng một vai trò tương tự. PHP không hỗ trợ các tham chiếu biến. Bạn cũng có thể mô phỏng các con trỏ hàm tới một số phạm vi, mà 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 các biến chứ không phải là một tên hằng.
  • Không có Prototype − Các hàm không cần được khai báo trước khi trình 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 code hoặc file được bao hiện tại.
  • Quản lý bộ nhớ − PHP thực hiện hiệu quả công việc dọn sạch code, và với các script nhỏ, không cần thiết thực hiện bất kỳ việc giải phóng bộ nhớ nào. Bạn tự do cấp pháp bộ nhớ cho các cấu trúc mới, ví dụ: chuỗi mới và instance của đối tượng. Trong PHP 5, nó là có thể để định nghĩa destructor cho các đối tượng. Destructor được gọi khi tham chiếu cuối cùng tới một đối tượng rời khỏi phạm vi, trước khi bộ nhớ được phục hồi.
  • Trình biên dịch và liên kết − Không có các bước biên dịch riêng rẽ cho PHP script.
  • Tùy ý hơn − PHP là tự do hơn C (đặc biệt trong hệ thống kiểu của nó), và vì thế, bạn có thể tránh được các loại lỗi mới. Các kết quả không mong đợi là phổ biến hơn là các Error.

Bình luận