Nếu bạn không thể làm cho một cái gì đó hoạt động và nghĩ rằng đó có thể là do bạn sử dụng sai phiên bản PHP, thì có một cách thực sự đơn giản để kiểm tra phiên bản hiện tại. Show
Các phiên bản PHP khác nhau có thể có các cài đặt mặc định khác nhau và trong trường hợp các phiên bản mới hơn, có thể có các chức năng mới Nếu hướng dẫn PHP đưa ra hướng dẫn cho một phiên bản PHP cụ thể, điều quan trọng là phải hiểu cách kiểm tra phiên bản bạn đã cài đặt Cách kiểm tra phiên bản PHPChạy một tệp PHP đơn giản sẽ không chỉ cho bạn biết phiên bản PHP của bạn mà còn có rất nhiều thông tin về tất cả các cài đặt PHP của bạn. Chỉ cần đặt một dòng mã PHP này vào một tệp văn bản trống và mở nó trên máy chủ <?php phpinfo() ?> Dưới đây là cách kiểm tra phiên bản PHP được cài đặt cục bộ. Bạn có thể chạy cái này trong Command Prompt trong Windows hoặc Terminal cho Linux/macOS php -v Đây là một ví dụ đầu ra PHP 5.6.35 (cli) (built: Mar 29 2018 14:27:15) Phiên bản PHP không hiển thị trong Windows?Cho rằng bạn thực sự đang chạy PHP trên máy chủ web của mình, lý do phổ biến nhất khiến phiên bản PHP không hiển thị là nếu đường dẫn đến PHP không được thiết lập với Windows Bạn có thể thấy lỗi như thế này nếu biến môi trường chính xác không được định cấu hình ‘php.exe’ is not recognized as an internal or external command, operable program or batch file. Trong Dấu nhắc Lệnh, nhập lệnh sau, trong đó đường dẫn sau "C. " là đường dẫn đến PHP (của bạn có thể khác) set PATH=%PATH%;C:\php\php.exe Trích dẫn bài viết này Định dạng mla apa chicagotrích dẫn của bạn Bradley, Angela. "Đây là cách kiểm tra phiên bản PHP bạn đang chạy. "ThinkCo. https. //www. suy nghĩ. com/what-version-of-php-running-2694207 (truy cập ngày 16 tháng 12 năm 2022) PHP8. 1 được phát hành vào ngày 25 tháng 11 năm 2021. Hiện tại nó là phiên bản PHP mới nhất. Trong bài đăng này, chúng ta sẽ lần lượt xem xét tất cả các tính năng, cải tiến hiệu suất, thay đổi và ngừng sử dụng # Các tính năng mớiNhư với mọi bản phát hành, PHP 8. 1 thêm một số tính năng mới hay. Hãy nhớ rằng danh sách này sẽ tăng lên trong năm 👍 👍 👍 0 # Enums RFCEnums sẽ được thêm vào trong PHP 8. 1. Nếu bạn không chắc chúng có thể được sử dụng để làm gì, bạn có thể đọc về chúng tại đây Thêm enums sẽ là một cải tiến đáng kể trong PHP, vì vậy tôi rất mong đợi được thấy enums xuất hiện trong PHP 8. 1. Để cung cấp cho bạn bản xem trước nhanh về giao diện của chúng, đây là một mẫu mã
Và đây là cách chúng sẽ được sử dụng
Bạn có thể tìm thấy một phân tích chuyên sâu về cách sử dụng enums trong bài viết này # Sợi RFCSợi — còn gọi là "luồng xanh" — là một cơ chế cấp thấp để quản lý tính song song. Bạn có thể sẽ không sử dụng chúng trực tiếp trong các ứng dụng của mình, nhưng các framework như Amphp và ReactPHP sẽ sử dụng chúng rộng rãi Đây là một ví dụ đơn giản về việc sử dụng sợi
Nếu bạn muốn đọc thêm về sợi, những gì chúng có thể và không thể làm, bạn có thể đọc bài đăng này Xem video mới nhất của tôi PHP trong 1 phút # Cải thiện hiệu suất PRDmitry Stogov đã thêm một số cải tiến cho opcache, ông gọi nó là "bộ đệm kế thừa". Tính năng này cho phép các liên kết giữa các lớp được lưu vào bộ đệm, giống như các lớp được liên kết có thể được tải trước kể từ PHP 7. 4 Dmitry báo cáo hiệu suất tăng từ 5% đến 8% nhờ thay đổi này, một chi tiết nhỏ thú vị cần chú ý trong PHP 8. 1 # Giải nén mảng bằng các khóa chuỗi RFCGiải nén mảng đã được cho phép trong PHP 7. 4, nhưng nó chỉ hoạt động với các phím số. Lý do khóa chuỗi không được hỗ trợ trước đây là do không có bất kỳ sự đồng thuận nào về cách hợp nhất các mảng trùng lặp. RFC giải quyết vấn đề này một cách rõ ràng bằng cách tuân theo ngữ nghĩa của 2
# $fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend('after suspending'); // … }); $valueAfterSuspending = $fiber->start(); $fiber->resume('after resuming');3 trong bộ khởi tạo RFCRFC này cho phép bạn sử dụng từ khóa 3 trong các định nghĩa hàm làm tham số mặc định, cũng như trong các đối số thuộc tính và các vị trí khácphp -v2 Bạn có thể đọc tất cả về tính năng này trong bài đăng chuyên dụng này # Thuộc tính chỉ đọc RFCThuộc tính lớp có thể được đánh dấu là chỉ đọc, nghĩa là chúng chỉ có thể được viết một lần php -v3 Cố gắng thay đổi thuộc tính chỉ đọc sau khi nó đã được khởi tạo sẽ dẫn đến lỗi php -v4 Nếu bạn muốn tìm hiểu sâu hơn về các thuộc tính chỉ đọc, bạn có thể đọc bài đăng tiếp theo của tôi # Cú pháp có thể gọi hạng nhất RFCBây giờ, bạn có thể đóng từ một hàm có thể gọi được bằng cách gọi hàm có thể gọi đó và chuyển nó thành đối số 5php -v6 # Các loại giao lộ thuần túy RFCBạn đã biết về các kiểu union trong PHP 8. 0 và các loại giao lộ là một tính năng tương tự. Trong trường hợp các loại liên kết yêu cầu đầu vào là một trong các loại đã cho, các loại giao nhau yêu cầu đầu vào phải là tất cả các loại đã chỉ định. Các loại giao lộ đặc biệt hữu ích khi bạn đang làm việc với nhiều giao diện php -v7 Nếu bạn thích phong cách lập trình này, bạn cần tạo một giao diện mới 6 và triển khai nó trong 7, các kiểu giao nhau sẽ loại bỏ chi phí đó# Loại $fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend('after suspending'); // … }); $valueAfterSuspending = $fiber->start(); $fiber->resume('after resuming');8 mới RFCLoại 8 có thể được sử dụng để chỉ ra rằng một chức năng sẽ thực sự dừng dòng chương trình. Điều này có thể được thực hiện bằng cách đưa ra một ngoại lệ, gọi 0 hoặc các chức năng tương tự khácPHP 5.6.35 (cli) (built: Mar 29 2018 14:27:15)3 8 khác với 2 ở chỗ 2 vẫn cho phép chương trình tiếp tục. Đây có vẻ như là một tính năng mới lạ nhưng nó thực sự là một tính năng khá hữu ích cho các máy phân tích tĩnh# Hàm $array1 = ["a" => 1]; $array2 = ["b" => 2]; $array = ["a" => 0, ...$array1, ...$array2]; var_dump($array); // ["a" => 1, "b" => 2]4 mới RFCBạn có thể đã phải đối phó với điều này một lần trong một thời gian. xác định xem các khóa của mảng có theo thứ tự số hay không, bắt đầu từ chỉ mục 0. Giống như 5 quyết định xem một mảng nên được mã hóa dưới dạng mảng hay đối tượngPHP8. 1 thêm một hàm tích hợp để xác định xem một mảng có phải là một danh sách với các ngữ nghĩa đó hay không 0Bạn có muốn cập nhật về PHP 8. 1 phát triển? Đăng ký email# Hằng lớp cuối cùng RFCHằng số lớp trong PHP có thể bị ghi đè trong quá trình kế thừa 1Kể từ PHP 8. 1, bạn có thể đánh dấu các hằng số như vậy là 6 để ngăn chặn điều này 2# Hàm $array1 = ["a" => 1]; $array2 = ["b" => 2]; $array = ["a" => 0, ...$array1, ...$array2]; var_dump($array); // ["a" => 1, "b" => 2]7 mới RFCPHP8. 1 thêm các hàm 7 và 9 để bắt buộc đồng bộ hóa các thay đổi của tệp vào đĩa và đảm bảo bộ đệm ghi của hệ điều hành đã được xóa trước khi quay lại 3Vì đồng bộ hóa đĩa là hoạt động của hệ thống tệp nên hàm 7 sẽ chỉ hoạt động trên các luồng tệp đơn giản. Cố gắng đồng bộ hóa các luồng không phải tệp sẽ phát ra cảnh báo# Ký hiệu số nguyên bát phân rõ ràng RFCBây giờ bạn có thể sử dụng php -v21 và php -v22 để biểu thị các số bát phân. Ký hiệu trước đó bằng cách đặt trước một số với php -v23 vẫn hoạt động tốt 4# Thay đổi đột pháTrong khi PHP 8. 1 là một phiên bản nhỏ, sẽ có một số thay đổi về mặt kỹ thuật có thể là một thay đổi đột phá và cả việc không dùng nữa. Hãy thảo luận từng cái một # Các kiểu trả về của phương thức bên trong RFCRất có thể bạn sẽ gặp phải thông báo không dùng nữa này khi nâng cấp lên PHP 8. 1 5Bạn có thể nhận thấy lỗi này bật lên khi sử dụng php -v24, php -v25 và một số gói mã nguồn mở phổ biến khác. Điều đã xảy ra là các hàm bên trong đang bắt đầu sử dụng các kiểu trả về thích hợp. Nếu bạn đang mở rộng một lớp từ thư viện tiêu chuẩn (chẳng hạn như php -v26), thì bạn cũng cần thêm các kiểu trả về đó Cách khắc phục rất đơn giản. cập nhật mã nhà cung cấp của bạn nếu xảy ra lỗi trong gói của bên thứ ba (hầu hết các lỗi đó đã được sửa với các bản phát hành mới nhất của họ). Nếu xảy ra lỗi trong mã của bạn, bạn có thể thêm thuộc tính php -v27, khắc phục lỗi cho đến PHP 9. 0. Đây là một ví dụ về một lớp mở rộng php -v28 6Hoặc bạn chỉ cần thêm kiểu trả về 7# Hạn chế sử dụng php -v 29 RFCMột thay đổi nhỏ đối với cách sử dụng php -v29 sẽ có tác động đáng kể đến hiệu suất của tất cả các hoạt động mảng. Nikita làm tốt công việc giải thích vấn đề và giải pháp trong RFC. Thay đổi này có nghĩa là một số trường hợp biên không thể thực hiện được nữa với php -v29. "Những gì không còn được hỗ trợ sẽ được ghi vào toàn bộ $GLOBALS. Tất cả những điều sau đây sẽ tạo ra lỗi thời gian biên dịch" 8Ngoài ra, việc chuyển php -v29 theo tham chiếu sẽ tạo ra lỗi thời gian chạy 9Nikita đã phân tích 2000 gói hàng đầu trên Packagist và chỉ tìm thấy 23 trường hợp sẽ bị ảnh hưởng bởi thay đổi này. Chúng ta có thể kết luận rằng tác động của việc này — sự thay đổi về mặt kỹ thuật — sẽ thấp, đó là lý do tại sao nội bộ quyết định thêm nó vào PHP 8. 1. Hãy nhớ rằng hầu hết chúng ta sẽ giành chiến thắng nhờ sự thay đổi này, do tác động hiệu suất tích cực mà nó có ở mọi nơi trong mã của chúng ta # Tài nguyên để di chuyển đối tượngNhững thay đổi này là một phần của tầm nhìn dài hạn nhằm chuyển đổi tất cả các tài nguyên thành các đối tượng chuyên dụng. Bạn có thể đọc thêm về nó ở đây Fileinfo chức năng với các đối tượng php -v33 Các chức năng như php -v34 và php -v35 được sử dụng để chấp nhận và trả lại tài nguyên. Kể từ PHP 8. 1, chúng làm việc với các đối tượng php -v33 Các chức năng IMAP với các đối tượng php -v37 Giống như thay đổi fileinfo, các chức năng IMAP như php -v38 và php -v39 không còn hoạt động với các tài nguyên # Ngừng sử dụng các đối số null cho các đối số không nullable của các hàm bên trong RFCSự thay đổi này đơn giản. các chức năng bên trong hiện chấp nhận php -v40 cho các đối số không thể vô hiệu, RFC này không dùng hành vi đó. Ví dụ, điều này hiện có thể 0Trong PHP8. 1, các loại lỗi này sẽ đưa ra cảnh báo không dùng nữa, trong PHP 9, chúng sẽ được chuyển thành lỗi loại # Tự động hóa trên php -v 41 RFCTừ RFC
Bạn có thể đọc chi tiết trên trang RFC. Tóm lại, hành vi này không được chấp nhận 1# Những thay đổi nhỏ khácVới mỗi bản phát hành, có một loạt các thay đổi rất nhỏ đối với ngôn ngữ. Tất cả chúng đều được liệt kê trong hướng dẫn NÂNG CẤP trên GitHub và RFC không dùng nữa, hãy đảm bảo kiểm tra nếu bạn muốn biết từng chi tiết nhỏ Dưới đây là tóm tắt những thay đổi quan trọng nhất
Xem video mới nhất của tôi PHP trong 1 phút Tạm thời là vậy, hãy nhớ rằng tôi sẽ thường xuyên cập nhật bài đăng này trong năm, vì vậy hãy đảm bảo đăng ký nếu bạn muốn được cập nhật. Bạn có hào hứng với PHP 8 không. 1? Nhận thấy một tpyo? . Nếu bạn muốn cập nhật những gì đang diễn ra trên blog này, bạn có thể theo dõi tôi trên Twitter hoặc đăng ký nhận bản tin của tôi. Đăng ký email Phiên bản mới nhất của PHP 2022 là gì?W3Techs báo cáo rằng, kể từ tháng 10 năm 2022, "PHP được sử dụng bởi 74. 4% trong số tất cả các trang web có ngôn ngữ lập trình phía máy chủ mà chúng tôi biết. " PHP phiên bản 7. 4 là phiên bản được sử dụng nhiều nhất.
Là PHP 7. 4 ổn định?Theo WordPress Codex, PHP 7. 4 là “ bản phát hành ổn định được đề xuất cho hầu hết người dùng . ” Tuy nhiên, như với bất kỳ phiên bản mới nào của một chương trình phần mềm, luôn có những vấn đề tiềm ẩn có thể phát sinh.
Là PHP 7. 4 cuối đời?PHP 7. 4 sắp hết hạn sử dụng vì phiên bản PHP sẽ ngừng nhận bất kỳ bản cập nhật bảo mật nào kể từ ngày 28 tháng 11 năm 2022 .
Khi nào là PHP 7. 4 phát hành?Phóng thích Phát hành Hỗ trợ bảo mật 8. 0 2 năm trước (24 Thg 11 2020) Kết thúc sau 11 tháng (26/11/2023) 7. 4 3 năm trước (26 Thg 11 2019) Đã kết thúc 2 tuần 4 ngày trước (28 Thg 11 2022) 7. 3 4 năm trước (04 Thg 12 2018) Đã kết thúc 1 năm trước (06 Thg 12 2021) 7. 2 5 năm trước (28 Thg 11 2017) Đã kết thúc 2 năm trước (30 Thg 11 2020) |