В этой статье описывается введение и использование volatile в PHP threads v3 . Подробности заключаются в следующем:
Поскольку концепция автоматической инвариантности объекта с потоками введена в pt threads V3, когда мы задаем элемент в виде массива в конструкторе, мы не можем переписать элемент в других местах.
Примерами являются следующие:
Если мы перепишем участников снова, мы сообщим об ошибке.
Если вам действительно нужно переписать данные участника, в дополнение к явному приведению выше, другой способ – наследовать класс volatile.
Примерами являются следующие:
Volatile
{
private $data;
public function __construct()
{
//After inheriting from the volatile class, our members can still be rewritten after being set as threaded objects
$this->data = [
'a' => 123,
'b' => 456,
'c' => 789,
];
var_dump($this->data);
//Here, the member data is successfully rewritten
$this->data = [
'a' => 'aaa',
'b' => 'bbb',
'c' => 'ccc',
];
var_dump($this->data);
//Because the threaded object implements the arrayaccess interface, we can access the volatile object just like an array
echo $this->data['a'], "\t", $this->data['b'], "\t", $this->data['c'], "\n";
foreach ($this->data as $item) {
echo $item, "\n";
}
}
}
new Task();Результаты заключаются в следующем
Для получения дополнительной информации о PHP читатели, интересующиеся этим сайтом, могут ознакомиться со следующими темами: краткое описание навыков работы с процессами и потоками PHP, краткое описание навыков сетевого программирования PHP, вводный курс базового синтаксиса PHP, полная коллекция навыков работы с массивами PHP, краткое описание использования строк PHP “Руководство по работе с базой данных PHP + MySQL” и “Краткое описание навыков работы с общей базой данных PHP”.
Я надеюсь, что эта статья будет полезна для программирования на PHP.