日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php中对象的遍历输出,PHP中的对象遍历技巧

發布時間:2023/12/3 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中对象的遍历输出,PHP中的对象遍历技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP中的對象遍歷

對象的遍歷,主要是指遍歷對象中的,對外部可見屬性。實際上就是用訪問限制符public聲明的屬性,這點大家肯定很熟悉了。并且,在php中,遍歷對象居然與遍歷數組一樣,都可以用使用foreach語句。

好,下面用實例來說明:

class Demo

{

public $name;

public $age;

public $salary;

public function __construct($name,$age,$salary)

{

$this->name = $name;

$this->age = $age;

$this->salary = $salary;

}

}

//訪問

$obj = new Demo('peter', 28, 3800);

foreach ($obj as $key=>$value)

{

echo $key.'=>'.$value.'
';

}

訪問結果是:

name=>peter

age=>28

salary=>3800

但是一個對象中,很多時候,還有私有屬性和受保護的屬性,這些屬性外部是不可訪問,那么應該如何遍歷呢?很簡單,盡管這些屬性外部不可見,但是在類的內部都是可見的。我們只要在類的內部,聲明一個公共方法,用來遍歷類中所有屬性,然后在類的外部,訪問這個方法,就可以獲取到對象的全部屬性了,包括私有的和受保護的屬性。

我們將代碼修改一下:

class Demo

{

public $name;

public $age;

public $salary;

private $sex; //私有屬性$sex

protected $isMarried; //受保護屬性$isMarried

public static $home;

public function __construct($name,$age,$salary,$sex,$isMarried)

{

$this->name = $name;

$this->age = $age;

$this->salary = $salary;

$this->sex = $sex;

$this->isMarried = $isMarried;

}

public function query()

{

//遍歷類中非靜態屬性,$this與當前對象綁定

foreach ($this as $key=>$value){

print $key.'=>'.$value.'
';

}

}

}

//訪問

$obj = new Demo('peter', 28, 3800,'male',true);

foreach ($obj as $key=>$value)

{

echo $key.'=>'.$value.'
';

}

echo '


';

$obj->query();

訪問結果如下:

name=>peter

age=>28

salary=>3800

——————————————

name=>peter

age=>28

salary=>3800

sex=>male

isMarried=>1

其實以上的屬性都是屬于對象的,是非靜態屬性,還有一種屬性叫:靜態屬性,比較特殊,它不屬性對象,只屬性類,所以不可以遍歷靜態屬性。只能逐個輸出。

例如,我們在類的內部,再聲明一個靜態屬性

public static $home; //聲明靜態屬性$home

然后修改一個構造方法,增加一個參數:$home,并在方法體中增加一條賦值語句:

self::$home = $home;

最后在類的外部,實例化這個類時,傳入$home的實參:合肥

$obj = new Demo('peter', 28, 3800,'male',true,'合肥');

在類的外部,我們用類名訪問靜態屬性:

echo Demo::$home;

在類的內部,我們在query()方法中,最后添加一條輸出語句:

print self::$home;

完整代碼如下:

public function query()

{

//遍歷類中非靜態屬性,$this與當前對象綁定

foreach ($this as $key=>$value){

print $key.'=>'.$value.'
';

}

print self::$home; //訪問靜態屬性,self與當前類綁定

}

再次訪問,輸出如下:

name=>peter

age=>28

salary=>3800

合肥

name=>peter

age=>28

salary=>3800

sex=>male

isMarried=>1

合肥

根據官方手冊,除了可以上面常規的方法,來遍歷數組外,還可以使用迭代器接口(IteratorAggregate)和數組訪問接口(ArrayAccess)來實現對象遍歷,感興趣的同學,可以嘗試一下。

winform練習-通過遍歷Control容器中的對象統一委托事件-樓盤選擇器

1.窗體布局如下,一個label標簽內容如下,一個btnSave按鈕,用于保存,其他九個按鈕用于選擇樓盤. 2. 按鈕存于Control容器中,編寫方法遍歷容器中的button,通過條件過濾掉不是bu ...

iOS開發實用技巧—Objective-C中的各種遍歷(迭代)方式

iOS開發實用技巧—Objective-C中的各種遍歷(迭代)方式 說明: 1)該文簡短介紹在iOS開發中遍歷字典.數組和集合的幾種常見方式. 2)該文對應的代碼可以在下面的地址獲得:https:// ...

jquery獲取json對象中的key小技巧

jquery獲取json對象中的key小技巧 比如有一個json var json = {"name" : "Tom", "age" : 1 ...

Java循環遍歷中直接修改遍歷對象

Java 循環遍歷中直接修改遍歷對象如下,會報異常: for (ShopBaseInfo sp: sourceList) { if(sp.getId()==5){ sourceList.remove( ...

YII框架中可以使用foreach遍歷對象以及可以使用數組形式直接訪問對象的原因

YII框架中可以使用foreach遍歷對象以及可以使用數組形式直接訪問對象的原因在YII框架的使用過程中,我們可以使用foreach直接遍歷findAll等方法返回的對象的屬性為什么呢?其實這與CMo ...

ES6中常用的小技巧,用了事半功倍哦

ES6中常用的小技巧,如果能在實際項目中能使用到,必定事半功倍: 1. 強制要求參數 ES6提供了默認參數值機制,允許你為參數設置默認值,防止在函數被調用時沒有傳入這些參數. 在下面的例子中,我們寫了 ...

避免Java中NullPointerException的Java技巧和最佳實踐

Java中的NullPointerException是我們最經常遇到的異常了,那我們到底應該如何在編寫代碼是防患于未然呢.下面我們就從幾個方面來入手,解決這個棘手的?問題吧.? 值得慶幸的是,通過應用 ...

Unreal Engine 4 中的 UI 優化技巧

轉自:https://mp.weixin.qq.com/s/bybEHM9tF-jBPxxqXfrPOQ## Unreal Open Day 2017 活動上 Epic Games 開發者支持工程師郭 ...

隨機推薦

深入理解CSS彈性盒模型flex

× 目錄 [1]版本更迭 [2]display [3]基本概念[4]伸縮容器[5]伸縮項目 前面的話 CSS3引入了一種新的布局模型——flex布局.flex是flexible box的縮寫,一般稱之 ...

正確認識Android的內存管理機制,合理關閉進程 (一)

隨著大家收貨后會有很多樂粉曬內存,為啦方便大家,在網上搜集了一些相關Andriod管理的相關機制合理管理內存,整理下發個貼. 首先要知道Android系統是基于Linux 2.6內核開發的開源操作系統 ...

[Linux] 關閉防火墻以及開放端口

一. service iptables stop 臨時關閉, chkconfig iptables off完全關閉 service iptables status狀態, service iptable ...

string的基本用法

#include #include #include #include us ...

關于QQ的NABCD模型

關于QQ的NABCD模型 N--Need 隨著電腦的普及,人們在網絡上進行交流的時間越來越多,由于現有的交流工具還不是那么的完善,還不能夠完全滿足人們在交流時的需求.因此為了滿足人們更多的需求,我們設 ...

【Java基礎】反射和注解

前言 在Java中,反射機制和注解機制一直是一個很重要的概念,那么他們其中的原理是怎么樣呢,我們不僅僅需要會使用,更要知其然而之所以然. 目錄 反射機制 反射如何使用 注解定義 注解機制原理 注解如何 ...

hdu-3308 LCIS (線段樹區間合并)

LCIS Time Limit: 6000/2000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

(1-3)line-height與圖片的表現

(1-3)line-height與圖片的表現 這篇文章真的很重要,耐心看,重中之重. 一.行高和圖片的表現 圖片和行高有什么歪膩呢?? 很多人不明白,為什么我圖片好好的放在一個標簽里面它就出現了如下問 ...

android studio中如何替換gradle以防下載卡住

我們在開發過程中需要導入別人的demo工程,那么你有事就會下載gradle構建文件,然而有時下載會一直卡住,那么這時候你就會想,我自己用迅雷去下載gradle文件然后不就行了,然后問題就來了 1.我們 ...

【原】Python學習_Django搭建環境及創建第一個項目

1.Window 平臺安裝 Python 下載安裝包? ??https://www.python.org/downloads/windows/ 2.Pyhton環境變量配置 右鍵點擊"計算機 ...

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php中对象的遍历输出,PHP中的对象遍历技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。