Pengaturcaraan tak segerak dalam PHP menggunakan gelung acara dan panggil balik untuk mencapai pelaksanaan tugas serentak. Ia boleh dicapai melalui sambungan libev, yang menyediakan gelung acara yang mendengar acara dan melaksanakan panggilan balik yang sepadan. Contoh pengaturcaraan rangkaian tak segerak menunjukkan penciptaan pelayan menggunakan libev untuk sambungan rangkaian tak segerak, manakala contoh pengaturcaraan pemasa menunjukkan mencipta pemasa yang melaksanakan panggilan balik selepas masa yang ditentukan. Pengaturcaraan tak segerak dalam PHP membantu membina aplikasi responsif dan cekap yang membolehkan tugasan dilaksanakan serentak.
Asynchronous Programming ialah paradigma pengaturcaraan yang membolehkan program menjalankan pelbagai tugas secara selari tanpa menyekat utas utama. Dalam PHP, pengaturcaraan tak segerak boleh dicapai dengan menggunakan gelung acara dan panggil balik.
PHP sambungan libev menyediakan gelung acara yang membolehkan anda mendengar acara (seperti sambungan rangkaian dan pemasa) dan melaksanakan panggilan balik dengan sewajarnya. Untuk menggunakan libev, pasang sambungan dan mulakan gelung acara dengan kod berikut:
require 'vendor/autoload.php'; $loop = new \LibEv\EventLoop();
Berikut ialah contoh pengaturcaraan rangkaian tak segerak menggunakan libev:
use \LibEv\EventLoop; use \LibEv\IO\Stream\Server; $loop = new EventLoop(); $server = new Server($loop, '127.0.0.1', 8080); $server->on('connection', function (Server $server, Stream $client) { echo 'New client connected'; }); $loop->run();
Dalam contoh ini, pelayan akan mendengar sambungan masuk , setelah sambungan diwujudkan, fungsi panggil balik akan dilaksanakan. Aplikasi boleh terus bekerja pada tugas lain sementara pelayan terus berjalan di latar belakang.
Pemasa tak segerak membolehkan anda melaksanakan panggilan balik selepas tempoh masa yang ditetapkan. Berikut ialah contoh penggunaan libev untuk mencipta pemasa tak segerak:
use \LibEv\EventLoop; use \LibEv\Timer; $loop = new EventLoop(); $timer = new Timer($loop, 1.0, true); // 1 秒后重复执行 $timer->on('timeout', function (Timer $timer) { echo 'Timer has timed out'; }); $loop->run();
Dalam contoh ini, pemasa melaksanakan fungsi panggil balik setiap saat. Anda juga boleh menjadualkan pemasa lebih jauh dalam fungsi panggil balik.
Pengaturcaraan tak segerak dalam PHP membolehkan pelaksanaan tugas serentak melalui gelung acara dan panggil balik. Dengan menggunakan sambungan libev, anda boleh membuat pelayan rangkaian tak segerak, pemasa dan pengendali acara tersuai yang lain. Ini membantu dalam membina aplikasi PHP yang responsif dan cekap yang boleh melaksanakan pelbagai tugas secara serentak.
Atas ialah kandungan terperinci Bagaimana untuk melakukan pengaturcaraan tak segerak dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!