今天就跟大家聊聊有關怎么在PHP中使用Volatile,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到合山網(wǎng)站設計與合山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋合山地區(qū)。由于pthreads v3中引入了Threaded對象自動不變性的概念,所以當我們在構造函數(shù)中給成員設置為數(shù)組時,在其他地方就無法對成員再次改寫了。
例子如下:
data = 'abc'; var_dump($this->data); //成員設置成標量,是可以再次被改寫的 $this->data = 'def'; var_dump($this->data); //這里給data設置為數(shù)組時,會自動轉換成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]; //打印出來是數(shù)組 var_dump($this->result); $this->result = (array)[4, 5, 6]; //成員賦值成功 var_dump($this->result); } } new Task();
如果我們對成員再次進行改寫,那么就會報錯了。
如果確實需要對成員數(shù)據(jù)進行改寫,除了上面的顯式強制轉換外,另一個方法就是繼承Volatile類了。
例子如下:
data = [ 'a' => 123, 'b' => 456, 'c' => 789, ]; var_dump($this->data); //這里成員數(shù)據(jù)成功被改寫 $this->data = [ 'a' => 'aaa', 'b' => 'bbb', 'c' => 'ccc', ]; var_dump($this->data); //由于Threaded對象實現(xiàn)了ArrayAccess接口,我們可以像訪問數(shù)組一樣,訪問Volatile對象 echo $this->data['a'], "\t", $this->data['b'], "\t", $this->data['c'], "\n"; foreach ($this->data as $item) { echo $item, "\n"; } } } new Task();
結果如下:
看完上述內容,你們對怎么在PHP中使用Volatile有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。