Spent ages trying to get this to work, then eventually remembered I had opened the mailbox READONLY - obviously you need write permission for setting flags!(PHP 4, PHP 5, PHP 7, PHP 8)
imap_setflag_full — Define sinalizadores em mensagens
   Faz com que um armazenamento adicione o sinalizador flag especificado ao
   conjunto de sinalizadores para as mensagens na
   sequência informada em sequence.
  
imapUma instância de IMAP\Connection.
sequence
       Uma sequência de números de mensagens. Pode-se enumerar mensagens desejadas
       com a sintaxe X,Y ou recuperar todas as mensagens
       dentro de um intervalo com a sintaxe X:Y
      
flag
       Os sinalizadores que podem ser definir são \Seen,
       \Answered, \Flagged,
       \Deleted e \Draft conforme
       definido pela » RFC2060.
      
optionsUma máscara de bits que pode conter a única opção:
ST_UID - O argumento de sequência contém UIDs
          em vez de números de sequência
         
        
   Sempre retorna true.
  
   Lança um ValueError se options
   for inválido.
  
| Versão | Descrição | 
|---|---|
| 8.1.0 | O parâmetro imapagora espera uma instância de IMAP\Connection;
  anteriormente, um resourceimapválido era esperado. | 
| 8.0.0 | Um ValueError agora é lançado em valores de parâmetro optionsinválidos. Anteriormente,
       um aviso era emitido e a função retornavafalse. | 
Exemplo #1 Exemplo de imap_setflag_full()
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("Não foi possível conectar: " . imap_last_error());
$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");
echo gettype($status) . "\n";
echo $status . "\n";
imap_close($mbox);
?>Spent ages trying to get this to work, then eventually remembered I had opened the mailbox READONLY - obviously you need write permission for setting flags!Where possible I would avoid using POP3 accounts. My host allowed me to upgrade to IMAP and it is so much easier. I think the only way to accurately create any form of mail client with POP3 is to download the messages into an SQL database which is a big task to start with, considering the IMAP standards have the functionality we need built in.
I experimented with flag setting in POP3 and it seems they do not stick at all, and it is almost impossible to retrieve the number of unread messages (ie. the Seen / Unseen thing does not work)
Converted to IMAP and it's working - the majority of the functions in this section seem to be IMAP focussed and WILL NOT generally work with POP3