Hướng dẫn where does php code get executed? - mã php được thực thi ở đâu?

PHP là ngôn ngữ được biên dịch kể từ PHP 4.0

Ý tưởng về một trình biên dịch dường như là một chủ đề gây ra sự nhầm lẫn lớn. Một số người cho rằng trình biên dịch là một chương trình chuyển đổi mã nguồn bằng một ngôn ngữ thành một chương trình thực thi. Định nghĩa về một trình biên dịch thực sự rộng hơn thế.

Trình biên dịch là một chương trình chuyển đổi mã nguồn thành một đại diện khác của mã. Biểu diễn mục tiêu thường là mã máy, nhưng nó cũng có thể là mã nguồn bằng ngôn ngữ khác hoặc thậm chí trong cùng một ngôn ngữ.

PHP trở thành ngôn ngữ được biên soạn vào năm 2000, khi Php 4 được phát hành lần đầu tiên. Cho đến phiên bản 3, mã nguồn PHP đã được phân tích cú pháp và thực hiện ngay lập tức bởi trình thông dịch PHP.

Php 4 giới thiệu động cơ Zend. Động cơ này chia việc xử lý mã PHP thành nhiều giai đoạn. Pha đầu tiên phân tích mã nguồn PHP và tạo biểu diễn nhị phân của mã PHP được gọi là mã hóa Zend. Opcodes là bộ hướng dẫn tương tự như các byte Java. Các opcode này được lưu trữ trong bộ nhớ. Giai đoạn thứ hai của xử lý động cơ Zend bao gồm thực hiện các mã hóa được tạo.

Hình thành thêm thông tin Truy cập //www.phpclasses.org/blog/post/117-php-compiler-performance.html

Bài viết này đã được xem xét bởi Younes Rafie. Cảm ơn tất cả các nhà đánh giá ngang hàng của SitePoint đã làm cho Nội dung SitePoint trở nên tốt nhất có thể!

Lấy cảm hứng từ một bài viết gần đây về cách Ruby Code thực hiện, bài viết này bao gồm quá trình thực thi cho mã PHP.

Giới thiệu

Có rất nhiều thứ đang diễn ra dưới mui xe khi chúng tôi thực hiện một đoạn mã PHP. Nói rộng ra, trình thông dịch PHP trải qua bốn giai đoạn khi thực thi mã:

  1. Từ xa
  2. Phân tích cú pháp
  3. Tổng hợp
  4. Diễn dịch

Bài viết này sẽ lướt qua các giai đoạn này và cho thấy cách chúng ta có thể xem đầu ra từ mỗi giai đoạn để thực sự thấy những gì đang diễn ra. Lưu ý rằng trong khi một số tiện ích mở rộng được sử dụng đã là một phần của cài đặt PHP của bạn [chẳng hạn như tokenizer và opcache], các phần khác sẽ cần được cài đặt và bật thủ công [như PHP-ast và VLD].

Giai đoạn 1 - Lexing

Lexing [hoặc mã thông báo] là quá trình biến một chuỗi [mã nguồn PHP, trong trường hợp này] thành một chuỗi mã thông báo. Một mã thông báo chỉ đơn giản là một định danh được đặt tên cho giá trị mà nó đã khớp. PHP sử dụng RE2C để tạo Lexer của mình từ tệp định nghĩa Zend_L Language_Scanner.L.

Chúng ta có thể thấy đầu ra của giai đoạn Lexing thông qua tiện ích mở rộng tokenizer:

$code = 

Bài Viết Liên Quan

Chủ Đề