A classe Volatile
(PECL pthreads >= 3.0.0)
Introdução
A classe Volatile é nova no pthreads v3. Sua introdução é consequência da nova semântica de imutabilidade dos membros Threaded das classes Threaded. A classe Volatile permite a mutabilidade de seus membros Threaded e também é usada para armazenar arrays PHP em contextos Threaded.
Resumo da classe
/* Métodos herdados */
}Exemplos
Example #1 Nova semântica de imutabilidade do Threaded
<?php
class Task extends Threaded
{
public function __construct()
{
$this->data = new Threaded();
// tentativa de substituir uma propriedade Threaded de uma classe Threaded (inválida)
$this->data = new stdClass();
}
}
var_dump((new Task())->data);
O exemplo acima produzirá algo semelhante a:
RuntimeException: Threaded members previously set to Threaded objects are immutable, cannot overwrite data in %s:%d
Example #2 Volatile use-case
<?php
class Task extends Volatile
{
public function __construct()
{
$this->data = new Threaded();
// tentativa de substituir uma propriedade Threaded de uma classe Volatile (válido)
$this->data = new stdClass();
}
}
var_dump((new Task())->data);
O exemplo acima produzirá algo semelhante a:
object(stdClass)#3 (0) { }