Channel::isEmpty
(PHP 8.6+, True Async 1.0)
php
public Channel::isEmpty(): boolVérifie si le tampon du canal est vide (aucune valeur disponible pour la réception).
Pour un canal rendez-vous (capacity = 0), cette méthode retourne toujours true, car les données sont transférées directement sans mise en tampon.
Valeurs de retour
true — le tampon est vide. false — le tampon contient des valeurs.
Exemples
Exemple #1 Vérification des données disponibles
php
<?php
use Async\Channel;
$channel = new Channel(5);
echo $channel->isEmpty() ? "vide" : "contient des données"; // "vide"
$channel->send(42);
echo $channel->isEmpty() ? "vide" : "contient des données"; // "contient des données"Exemple #2 Traitement par lots des données
php
<?php
use Async\Channel;
$channel = new Channel(100);
spawn(function() use ($channel) {
while (!$channel->isClosed() || !$channel->isEmpty()) {
if ($channel->isEmpty()) {
delay(50); // attendre l'arrivée de données
continue;
}
$batch = [];
while (!$channel->isEmpty() && count($batch) < 10) {
$batch[] = $channel->recv();
}
processBatch($batch);
}
});Voir aussi
- Channel::isFull --- Vérifier si le tampon est plein
- Channel::count --- Nombre de valeurs dans le tampon
- Channel::recv --- Recevoir une valeur