首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP类返回可以迭代的属性?

PHP类返回可以迭代的属性?
EN

Stack Overflow用户
提问于 2012-06-13 23:22:52
回答 2查看 56关注 0票数 0

我很抱歉,当涉及到PHP时,我充其量只是一个新手,所以请温文尔雅。

我已经创建了一个类,它将从数据库中获取一些信息,并将各种值作为类的属性返回。这很好用,因为我只要求一行。

如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$mydata = new mydataclass;

$mydata->getaparticularrowofdata($uniqueid);

$value1 = $mydata->variable1;
$value2 = $mydata->variable2;
$value3 = $mydata->variable3;

我想做一些类似的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$mydata = new mydataclass;

$mydata->getafewrowsofdata($somefieldvaluetomatch);

if ($mydata->count != 0) {

// some sort of loop to iterate through each row until at the end, each time replacing       the property values with the new data

echo $mydata->variable1;
echo $mydata->variable2;
echo $mydata->variable3;

//

}

很明显,这只是一个例子。希望我说得有道理。

这可行吗?如果是这样的话,我们将非常感谢一些示例代码:)

答案可能很简单,但由于某些原因,我今天晚上似乎无法理解它。

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2012-06-13 23:37:23

这在一定程度上取决于您返回的结果集的格式,但这里有一些示例,说明如何使用您的示例遍历结果集。

如果将结果集作为对象返回:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $resultsObject = $mydata->getafewrowsofdata($somefieldvaluetomatch);

  foreach($resultsObject as $result)
  {
    echo $result->variable1;
    echo $result->variable2;
    echo $result->variable3;
  }

如果以数组的形式返回结果集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  $resultsArray = $mydata->getafewrowsofdata($somefieldvaluetomatch);

  foreach($resultsArray as $result)
  {
    echo $result['variable1'];
    echo $result['variable2'];
    echo $result['variable3'];
  }
票数 0
EN

Stack Overflow用户

发布于 2012-06-13 23:56:37

我建议您使用getafewrowsofdata方法返回一个数据数组(每行一个元素)或返回一个实现Iterator接口的result对象,而不是在检索数据并随后遍历数据时修改mydataclass的属性(这有很多副作用,而且不能使用您的类同时选择多组数据)。

如果您正在使用PDO,一种简单的方法是让您的getafewrowsofdata函数使用PDO的fetchAll方法。这甚至可以返回自定义类的对象(参见示例4)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11024730

复制
相关文章
php学习之类与对象的类的静态属性
静态变量是当前类的所有对象共享的变量,任何一个该类的对象去访问它时,取得的都是相同的值,同样任何一个该类的对象去修改它时,也时同样被修改
吾爱乐享
2019/12/30
6470
php学习之类与对象的类的静态属性
PHP-迭代器
1.4 迭代器 1.4.1 遍历数组 手动遍历数组 步骤: 1、复位数组指针 reset() 2、检查指针是否合法 获取当前指针,如果不为null就是合法的 3、获取当前值 current(
cwl_java
2020/03/28
4060
Java的Iterator迭代器类
迭代对于我们搞 Java 的来说绝对不陌生。我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代。
JavaEdge
2021/02/22
4540
PHP检查对象或类中是否存在属性
$obj = \app\common\library\Email::instance(); $obj->p=889; if(isset($obj->p)){ echo 66; }else{ echo 99; } die; isset既可以判断对象的属性是否存在,也可以判断数组的键名是否存在 未经允许不得转载:肥猫博客 » PHP检查对象或类中是否存在属性
超级小可爱
2023/02/20
4.2K0
Python 魔术方法,属性,迭代器
魔术方法,属性,迭代器 岁月有你,惜惜相处 阅读本文需要5分钟 1.13.1 魔术方法: 在Python中的面向对象中有很多魔术方法如: __init__: 构造函数,在生成对象时调用 __del__: 析构函数,释放对象时使用 __str__: 使用print(对象)或者str(对象)的时候触发 __repr__: 在使用repr(对象)的时候触发 __setitem__ : 按照索引赋值:每当属性被赋值的时候都会调用该方法:self.__dict__[name] = value
Python知识大全
2020/02/13
5960
PHP设计模式——迭代模式
作为商店经理,Eric的工作包括检修各个部门的产品。商店中实际上有两个部门。一个部门称为男士部门,该部门存放男性用品,另一个部门称为女士部门的女性用品。每个部门使用不同的存储结构(数据结构)存储其产品。
Lemon黄
2019/11/13
6940
PHP方法的返回值
不仅是PHP,大部分编程语言的函数或者叫方法,都可以用return来定义方法的返回值。从函数这个叫法来看,本身它就是一个计算操作,因此,计算总会有个结果,如果你在方法体中处理了结果,比如进行了持久化保存,那么这个函数就不用返回任何内容。而计算的结果是要给外部使用的,这时候就要将计算结果进行返回了。
硬核项目经理
2020/02/17
7.7K0
php递归函数返回值返回不出的问题
发现无论如何,函数的打印结果是正确的,到return的时候只能打印一个null,一直改都没法解决
仙士可
2019/12/18
4.5K0
Python类中的属性
通常,在编程中,当某物是公共的时,你可以访问它并使用它;当它是私有的时,你不能。这就像思考某事与说出某事:当你思考某事时,它是你自己的;但是,无论你大声说出什么,它都不再只属于你,而变得公开。
磐创AI
2023/08/29
1880
Python类中的属性
Python_类的属性
1.类属性分类 类的属性分为: 数据属性:就是类中的变量; 函数属性:就是类中函数,在面向对象设计中通常称为方法; 类和对象的属性均使用点(.)来访问自己的属性 2.类的属性 类的定义与函数极其相似,我们可以使用函数的作用域来理解类的属性调用方式。 我们可以通过类的属性字典来查询类的属性,如下图所示:
py3study
2020/01/07
1.1K0
类的受保护属性
创建类时我们希望部分属性不能被外部修改,即创建类的受保护属性。受保护属性可以在类以及子类中读取修改,而外部不能读取。
玖柒的小窝
2021/10/05
8730
PHP数组迭代器的使用方法
近来在开发一个视力筛查电子报告系统的产品,这个产品的作用是自动提取视力筛查过程中得到的屈光检查数据,并结合数据自动生成通俗易懂且专业的电子报告,以方便家长可以通过公众号或H5链接查阅。
风柏杨4711
2021/11/08
1.3K0
PHP数组迭代器的使用方法
Python迭代器还可以这样玩
十一这几天基本在家周边玩,万象汇、格林公园、肖甸湖、师弟的婚宴,空了就看看极客时间,玩玩游戏,刷刷微信,就这么过去了,此外每周五天五公里的跑步,依然在坚持。
somenzz
2020/11/25
3710
Python迭代器还可以这样玩
php的Snoopy类
获取请求网页里面的所有链接,直接使用fetchlinks就可以,获取所有文本信息使用fetchtext(其内部还是使用正则表达式在进行处理),还有其它较多的功能,如模拟提交表单等。
meteoric
2018/11/15
1.2K0
php返回json格式的{}花括号
方括号的[]在json中调试是一个数组,而花括号{}在json中表示一个对象,不过二者在PHP中基本上一个empty就可以判断为i空了,但在js里好像就有一些麻烦了,可能需要下面的判断方式。
老高的技术博客
2022/12/28
1.7K0
【说站】php迭代器iterator的作用
2、Iterator是php预定义的接口类,可以直接使用。iterator{}是Traversable{}的子类。
很酷的站长
2022/11/24
4410
【说站】php迭代器iterator的作用
点击加载更多

相似问题

PHP7.4类型属性迭代

47

返回类的实例(曾是“php类的属性”)

30

使用类的属性迭代类

23

迭代类的静态属性

23

是否可以在类之外更改类的属性?(PHP)

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文