好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP中的Iterator迭代對象屬性詳解

PHP中的Iterator迭代對象屬性詳解

熱門標簽:保定crm外呼系統運營商 七魚外呼系統停用嗎 智能電話機器人排名前十名南京 海南人工外呼系統有效果嗎 抖音有個地圖標注是什么意思 阿里云400電話申請加工單 地下城堡2圖九地圖標注 西區企業怎么做地圖標注入駐 九江外呼系統

前言

foreach用法和之前的數組遍歷是一樣的,只不過這里遍歷的key是屬性名,value是屬性值。在類外部遍歷時,只能遍歷到public屬性的,因為其它的都是受保護的,類外部不可見。

class HardDiskDrive {

  public $brand;
  public $color;
  public $cpu;
  public $workState;

  protected $memory;
  protected $hardDisk;

  private $price;

  public function __construct($brand, $color, $cpu, $workState, $memory, $hardDisk, $price) {

    $this->brand = $brand;
    $this->color = $color;
    $this->cpu  = $cpu;
    $this->workState = $workState;
    $this->memory = $memory;
    $this->hardDisk = $hardDisk;
    $this->price = $price;
  }

}

$hardDiskDrive = new HardDiskDrive('希捷', 'silver', 'tencent', 'well', '1T', 'hard', '$456');

foreach ($hardDiskDrive as $property => $value) {

  var_dump($property, $value);
  echo 'br>';
}

輸出結果為:

string(5) "brand" string(6) "希捷"
string(5) "color" string(6) "silver"
string(3) "cpu" string(7) "tencent"
string(9) "workState" string(4) "well"

通過輸出結果我們也可以看得出來常規遍歷是無法訪問受保護的屬性的。

如果我們想遍歷出對象的所有屬性,就需要控制foreach的行為,就需要給類對象,提供更多的功能,需要繼承自Iterator的接口:

該接口,實現了foreach需要的每個操作。foreach的執行流程如下圖:

看圖例中,foreach中有幾個關鍵步驟:5個。

而Iterator迭代器中所要求的實現的5個方法,就是用來幫助foreach,實現在遍歷對象時的5個關鍵步驟:

當foreach去遍歷對象時, 如果發現對象實現了Ierator接口, 則執行以上5個步驟時, 不是foreach的默認行為, 而是調用對象的對應方法即可:

示例代碼:

class Team implements Iterator {

  //private $name = 'itbsl';
  //private $age = 25;
  //private $hobby = 'fishing';

  private $info = ['itbsl', 25, 'fishing'];

  public function rewind()
  {
    reset($this->info); //重置數組指針
  }

  public function valid()
  {
    //如果為null,表示沒有元素,返回false
    //如果不為null,返回true

    return !is_null(key($this->info));
  }

  public function current()
  {
    return current($this->info);
  }

  public function key()
  {
    return key($this->info);
  }

  public function next()
  {
    return next($this->info);
  }

}

$team = new Team();

foreach ($team as $property => $value) {

  var_dump($property, $value);
  echo 'br>';
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • PHP之預定義接口詳解
  • PHP中預定義的6種接口介紹
  • PHP聚合式迭代器接口IteratorAggregate用法分析
  • PHP迭代器接口Iterator用法分析
  • PHP設計模式之迭代器模式Iterator實例分析【對象行為型】
  • PHP設計模式之迭代器(Iterator)模式入門與應用詳解
  • PHP使用DirectoryIterator顯示下拉文件列表的方法
  • php中通過DirectoryIterator刪除整個目錄的方法
  • PHP預定義接口——Iterator用法示例

標簽:梅河口 昭通 十堰 甘肅 遼陽 涼山 九江 韶關

巨人網絡通訊聲明:本文標題《PHP中的Iterator迭代對象屬性詳解》,本文關鍵詞  PHP,中的,Iterator,迭代,對象,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP中的Iterator迭代對象屬性詳解》相關的同類信息!
  • 本頁收集關于PHP中的Iterator迭代對象屬性詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 里番纯肉H在线观看网站| 一边吃奶一边添P好爽视频| 恋老同性xxx老头| 媚肉翻出蜜汁横流| 阿娇13分49秒无删减在线观看| 伊人久久大香线焦嫩草影视| 美女大胸被揉舒服gif动漫| 成年人免费在线看惊悚片| 成人a毛片免费全部播放| 高清电影免费在线观看| 普通话对白国产情侣自啪| 精品久久久国产软件亮点| 涩涩看片| 亚洲第一免费网站| 好吊爽视频988gaocom| 91精品婷婷国产综合久久竹菊| 国产午夜不卡| 国产靠逼视频| 好湿?好紧?太爽了三级| 免费看女人隐私秘?部位图片| 男插女逼逼| 狠狠色噜噜狠狠狠狠2021天天| 军区4p嗯~啊np| 18gay男同69亚洲网站| 国产91色在线|亚洲| 久久久久综合国产精品免费| 97青草最新免费精品视频| 杏8有你地址一地址二| 乖乖小松鼠免费阅读全文无弹窗| 妽妽~你真湿真紧好爽动态图| 国产情品国产三级国产AV剧情| silklabo10在线播放| 我一边做饭一边被躁| 成人A片产无码免费奶头动态图 | 久久精品人人做人人试看| 亚洲经典千人经典日产| 色综合色狠狠天天综合色| 范冰冰泰国做容器是真的吗| 一区二区三区在线|欧| 女人18毛多水多A片毛片| 影音先锋app无广告版下载|