PERL là một ngôn ngữ lập trình động kiểu, cấp cao và đa mục đích. Thông thường, người ta tin rằng PERL là một từ viết tắt cho Practical Extraction and Reporting Language. PHP, mặt khác, cũng là một ngôn ngữ kịch bản đa mục đích. Ban đầu, PHP được coi là viết tắt cho ‘Personal Home Page’, nhưng ngày nay nó đã được công nhận là một từ viết tắt đệ quy ‘PHP: Hypertext Preprocessor’.
Trong chương này, một số điểm tương đồng và khác biệt chính giữa PHP và PERL được liệt kê. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP một cách nhanh chóng và tránh những sai lầm phổ biến.
Cả Perl và PHP đều là ngôn ngữ kịch bản. Chúng không được sử dụng để xây dựng các tệp thực thi độc lập trước khi thực hiện.
Các phiên bản đầu tiên của PHP được lấy cảm hứng từ PERL. Cú pháp cơ bản của PHP rất giống với PERL. Cả hai đều chia sẻ nhiều đặc điểm cú pháp với C. Mã của chúng không nhạy cảm với khoảng trắng, mỗi câu lệnh được kết thúc bằng dấu chấm phẩy.
Cả PHP và PERL đều sử dụng dấu ngoặc nhọn để tổ chức nhiều câu lệnh thành một khối duy nhất. Các cuộc gọi hàm bắt đầu bằng tên của hàm, theo sau là các đối số thực tế được đặt trong dấu ngoặc đơn và phân tách bằng dấu phẩy, trong cả hai trường hợp.
Tất cả các biến trong PHP trông giống như các biến số trong PERL: một tên với ký hiệu đô la ($) ở phía trước.
Vì cả hai ngôn ngữ đều được kiểu động, bạn không cần phải khai báo kiểu của biến PHP cũng như biến PERL trước khi sử dụng chúng.
Trong PHP, cũng như trong PERL, biến không có kiểu nội tại nào ngoài giá trị mà chúng hiện đang nắm giữ. Bạn có thể lưu trữ cả số hoặc chuỗi trong cùng một loại biến.
Cả PHP và Perl đều thực hiện nhiều thao tác giải thích hơn đối với chuỗi có dấu nháy đôi ("string") so với chuỗi có dấu nháy đơn ('string').
PHP có thể được nhúng bên trong HTML. Mặc dù có thể chạy một tập lệnh PHP từ dòng lệnh, nhưng nó thường được sử dụng như một ngôn ngữ lập trình phía máy chủ trên máy chủ Web và được sử dụng để tạo ra các trang Web.
Nếu bạn đã quen với việc viết các kịch bản CGI trong PERL, sự khác biệt chính trong PHP là bạn không còn cần phải in ra các khối HTML tĩnh lớn một cách rõ ràng bằng cách sử dụng các câu lệnh print hoặc heredoc, mà thay vào đó bạn có thể đơn giản viết HTML ngay bên ngoài khối mã PHP.
No @ or % variables − PHP chỉ có một loại biến, bắt đầu bằng dấu đô la ($). Bất kỳ kiểu dữ liệu nào trong ngôn ngữ đều có thể được lưu trữ trong các biến như vậy, cho dù là kiểu đơn giản hay kiểu phức tạp. Trong PERL, biến mảng được tiền tố bằng ký hiệu @. Ngoài ra, biến hash được tiền tố bằng ký hiệu %.
Khác với PERL, PHP có một kiểu dữ liệu duy nhất gọi là mảng, có thể là một indexed array hoặc associative array , tương tự như hash in PERL .
Function calls in PHP trông khá giống như subroutine calls in PERL . Các định nghĩa hàm trong PHP, ngược lại, thường yêu cầu một danh sách các tham số chính thức như trong C hoặc Java, điều này không phải là trường hợp trong PERL.
Scope of variables trong PERL là toàn cục theo mặc định. Điều này có nghĩa là các biến ở cấp độ cao nhất có thể được nhìn thấy bên trong các thủ tục. Thường thì, điều này dẫn đến việc sử dụng biến toàn cục một cách bừa bãi trong các hàm. Trong PHP, phạm vi của các biến trong định nghĩa hàm là cục bộ theo mặc định.
No module system trong PHP như vậy. Trong PHP, không có sự phân biệt thực sự giữa các tệp mã thông thường và các tệp mã được sử dụng như thư viện đã được nhập khẩu.
Break and continue thay vì next and last − PHP giống như ngôn ngữ C hơn và sử dụng break và continue thay vì next và last như trong PERL.
No elsif − Sự khác biệt nhỏ về chính tả: elsif của Perl là elseif của PHP.
Ngoài kiểu chú thích của Perl (#) single-line comments , PHP còn cung cấp kiểu chú thích của C ( multiline comments (/* comment */)) và kiểu chú thích một dòng của Java (// comment).
Regular expressions − PHP không có cú pháp tích hợp sẵn dành riêng cho biểu thức chính quy, nhưng có hầu hết các chức năng tương tự trong các hàm biểu thức chính quy "tương thích với Perl" của nó.