Apa perbedaan antara fungsi yang ditentukan WordPress random_int()
dan fungsi bawaan PHPrandom_int()
?
Juga, jika ada perbedaan, bagaimana interpreter PHP memahami mana dari dua fungsi yang saya panggil?
Apa perbedaan antara fungsi yang ditentukan WordPress random_int()
dan fungsi bawaan PHPrandom_int()
?
Juga, jika ada perbedaan, bagaimana interpreter PHP memahami mana dari dua fungsi yang saya panggil?
Jawaban:
WordPress sudah tua. Bahkan, ini lebih tua dari PHP7, di mana PHP diperkenalkan random_int()
. WP ingin / membutuhkan fungsi ini sebelumnya, jadi metode lain diterapkan.
bagaimana interpreter PHP memahami fungsi mana yang saya panggil?
Pertanyaan bagus. Penerjemah tidak memahami hal ini. Dan karenanya, jika Anda memiliki PHP7 dan akan mendefinisikan fungsi ini baru, Anda akan mendapatkan kesalahan. Ini sebabnya. file dengan definisi fungsi hanya dimuat, ketika random_int()
tidak tersedia secara default.
wp-include / random_compat / random.php baris 212-214 adalah
if (!function_exists('random_int')) {
require_once $RandomCompatDIR.'/random_int.php';
}
Jadi jika server Anda adalah PHP7 dan PHP sendiri random_int()
bisa dipanggil, yang ini digunakan dan file tidak pernah disertakan.
Jika server Anda bukan PHP7 atau PHP sendiri random_int()
tidak dapat dipanggil karena alasan apa pun, file tersebut disertakan dan implementasi lain akan diberikan.
Ini dilakukan, agar WordPress dapat berjalan pada sistem yang berbeda. Mereka yang menggunakan PHP5 dan mereka yang menggunakan PHP7.
Apa bedanya? Saya tidak bisa berbicara dengannya. File-file yang digunakan WP tampaknya berasal dari repositori inirandom_compat
, yang juga ditautkan dari doc PHP (dan disarankan jika Anda tidak memiliki implementasi PHP sendiri tersedia).
Satu perbedaan cepat yang sudah saya lihat: PHP random_int()
mencoba untuk digunakan getrandom(2)
pada mesin Linux, sedangkan compat random_int()
hanya menggunakan /dev/urandom
.
Jika ragu, saya akan menggunakan versi sistem (PHP) alih-alih yang diperkenalkan oleh perangkat lunak (WP). Tapi itu hanya pendapat saya.
random_int_custom()
misalnya) agar dapat digunakan. Komentar terakhir agak dimaksudkan sebagai: masuk akal bahwa ia bekerja dengan cara ini (daripada menggunakan fungsi sistem daripada milik Anda), dan saya tidak akan merekomendasikan menempuh jarak ekstra untuk mengelaknya