Sự khác biệt giữa chức năng xác định WordPress random_int()
và chức năng tích hợp PHP là random_int()
gì?
Ngoài ra, nếu có sự khác biệt, làm thế nào trình thông dịch PHP hiểu được chức năng nào trong hai hàm tôi đang gọi?
Sự khác biệt giữa chức năng xác định WordPress random_int()
và chức năng tích hợp PHP là random_int()
gì?
Ngoài ra, nếu có sự khác biệt, làm thế nào trình thông dịch PHP hiểu được chức năng nào trong hai hàm tôi đang gọi?
Câu trả lời:
WordPress đã cũ. Trong thực tế, nó cũ hơn PHP7, trong đó PHP đã giới thiệu random_int()
. WP muốn / cần chức năng này trước đây, vì vậy một phương pháp khác đã được thực hiện.
Trình thông dịch PHP hiểu chức năng nào trong hai chức năng mà tôi đang gọi?
Câu hỏi hay. Thông dịch viên không hiểu điều này. Và do đó, nếu bạn có PHP7 và sẽ xác định hàm này mới, bạn sẽ gặp lỗi. Đây là lý do tại sao. tập tin với định nghĩa hàm chỉ được tải, khi random_int()
không có sẵn theo mặc định.
các dòng wp-gồm / Random_compat / Random.php 212-214 là
if (!function_exists('random_int')) {
require_once $RandomCompatDIR.'/random_int.php';
}
Vì vậy, nếu máy chủ của bạn là PHP7 và của riêng PHP random_int()
là có thể gọi được, thì máy chủ này được sử dụng và tệp không bao giờ được bao gồm.
Nếu máy chủ của bạn không phải là PHP7 hoặc PHP random_int()
không thể gọi được vì bất kỳ lý do gì, tệp sẽ được bao gồm và việc triển khai khác sẽ được đưa ra.
Điều này được thực hiện, vì vậy WordPress có thể chạy trên các hệ thống khác nhau. Những người có PHP5 và những người có PHP7.
Nó khác biệt như thế nào? Tôi thực sự không thể nói với nó. Các tệp WP sử dụng dường như là từ kho lưu trữ nàyrandom_compat
, cũng được liên kết từ tài liệu PHP (và được đề xuất nếu bạn không có triển khai riêng của PHP).
Một điểm khác biệt nhanh mà tôi đã thấy: PHP random_int()
cố gắng sử dụng getrandom(2)
trên các máy Linux, trong khi compat random_int()
chỉ sử dụng /dev/urandom
.
Khi nghi ngờ, tôi sẽ sử dụng các phiên bản của hệ thống (PHP) thay vì các phiên bản được giới thiệu bởi phần mềm (WP). Nhưng đó chỉ là ý kiến của tôi.
random_int_custom()
ví dụ) để có thể sử dụng được. Nhận xét cuối cùng có ý nghĩa như là: nó có ý nghĩa rằng nó hoạt động theo cách này (thay vì sử dụng các chức năng hệ thống so với của bạn) và tôi không khuyên bạn nên đi xa hơn để phá vỡ điều này