怎么在PHP中使用Volatile
今天就跟大家聊聊有关怎么在PHP中使用Volatile,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
由于pthreads v3中引入了Threaded对象自动不变性的概念,所以当我们在构造函数中给成员设置为数组时,在其他地方就无法对成员再次改写了。
例子如下:
data='abc'; var_dump($this->data); //成员设置成标量,是可以再次被改写的 $this->data='def'; var_dump($this->data); //这里给data设置为数组时,会自动转换成Volatile对象 $this->data=[1,2,3]; var_dump($this->data); //这个时候再给data赋值时,就会报错了 //成员被设置成Threaded对象时(Volatile继承自Threaded),该成员就不能再次被改写了 $this->data=[4,5,6]; var_dump($this->data); //当然,我们可以显式的强制转换,不让Threaded帮我自动转成Volatile对象 $this->result=(array)[1,2,3]; //打印出来是数组 var_dump($this->result); $this->result=(array)[4,5,6]; //成员赋值成功 var_dump($this->result); } } newTask();
如果我们对成员再次进行改写,那么就会报错了。
如果确实需要对成员数据进行改写,除了上面的显式强制转换外,另一个方法就是继承Volatile类了。
例子如下:
data=[ 'a'=>123, 'b'=>456, 'c'=>789, ]; var_dump($this->data); //这里成员数据成功被改写 $this->data=[ 'a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ]; var_dump($this->data); //由于Threaded对象实现了ArrayAccess接口,我们可以像访问数组一样,访问Volatile对象 echo$this->data['a'],"\t",$this->data['b'],"\t",$this->data['c'],"\n"; foreach($this->dataas$item){ echo$item,"\n"; } } } newTask();
结果如下:
看完上述内容,你们对怎么在PHP中使用Volatile有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。
推荐阅读
-
Linux中如何安装和使用 PHP 开发环境
-
php字符串增加1如何实现
php字符串增加1如何实现这篇“php字符串增加1如何实现”文章的...
-
php如何判断字符串是否有中文
php如何判断字符串是否有中文本文小编为大家详细介绍“php如何判...
-
php如何实现字符串去掉头尾
php如何实现字符串去掉头尾这篇“php如何实现字符串去掉头尾”文...
-
php字符串的组成是什么
php字符串的组成是什么这篇文章主要讲解了“php字符串的组成是什...
-
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
-
php字符串长度不一致如何解决
php字符串长度不一致如何解决本篇内容主要讲解“php字符串长度不...
-
php时区不正确如何解决
php时区不正确如何解决本文小编为大家详细介绍“php时区不正确如...
-
php+fread()乱码如何解决
php+fread()乱码如何解决本篇内容介绍了“php+frea...
-
php explode报错如何解决
phpexplode报错如何解决这篇文章主要介绍“phpexp...
-
Linux中如何安装和使用 PHP 开发环境
-
php字符串增加1如何实现
php字符串增加1如何实现这篇“php字符串增加1如何实现”文章的...
-
php如何判断字符串是否有中文
php如何判断字符串是否有中文本文小编为大家详细介绍“php如何判...
-
php如何实现字符串去掉头尾
php如何实现字符串去掉头尾这篇“php如何实现字符串去掉头尾”文...
-
php字符串的组成是什么
php字符串的组成是什么这篇文章主要讲解了“php字符串的组成是什...
-
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
-
php字符串长度不一致如何解决
php字符串长度不一致如何解决本篇内容主要讲解“php字符串长度不...
-
php时区不正确如何解决
php时区不正确如何解决本文小编为大家详细介绍“php时区不正确如...
-
php+fread()乱码如何解决
php+fread()乱码如何解决本篇内容介绍了“php+frea...
-
php explode报错如何解决
phpexplode报错如何解决这篇文章主要介绍“phpexp...
-
Linux中如何安装和使用 PHP 开发环境
-
php字符串增加1如何实现
php字符串增加1如何实现这篇“php字符串增加1如何实现”文章的...
-
php如何判断字符串是否有中文
php如何判断字符串是否有中文本文小编为大家详细介绍“php如何判...
-
php如何实现字符串去掉头尾
php如何实现字符串去掉头尾这篇“php如何实现字符串去掉头尾”文...
-
php字符串的组成是什么
php字符串的组成是什么这篇文章主要讲解了“php字符串的组成是什...
-
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
-
php字符串长度不一致如何解决
php字符串长度不一致如何解决本篇内容主要讲解“php字符串长度不...
-
php时区不正确如何解决
php时区不正确如何解决本文小编为大家详细介绍“php时区不正确如...
-
php+fread()乱码如何解决
php+fread()乱码如何解决本篇内容介绍了“php+frea...
-
php explode报错如何解决
phpexplode报错如何解决这篇文章主要介绍“phpexp...