首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中值对象的示例是什么?

PHP中值对象的示例是什么?
EN

Stack Overflow用户
提问于 2012-03-23 14:06:36
回答 2查看 4.8K关注 0票数 8

我读过很多值对象的C#示例,我知道它是一个由值标识的“对象”。

然而,当涉及到PHP...either时,这似乎没有意义,或者我只是没有建立联系。

值对象只是一个字符串吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-23 15:04:36

在许多OO语言中,为了将这一点放到上下文中,对象是通过它们的标识进行比较的。在伪代码中:

代码语言:javascript
复制
bar = new Foo
baz = new Foo

bar == baz  // false

即使这两个对象基本上是相同的,如果你只看它们的值,它们就不会被认为是相同的,因为它们是独立的实例。要演示,请执行以下操作:

代码语言:javascript
复制
bar = new Foo
baz = bar

bar == baz  // true

现在:

在计算机科学中,值对象是一个小的简单对象,如货币或日期范围,其相等性不是基于身份的。

http://en.wikipedia.org/wiki/Value_object

这将是“值对象”的演示:

代码语言:javascript
复制
address1 = new Address('Main street 42')
address2 = new Address('Main street 42')

address1 == address2  // true

因为值是相同的,所以这两个对象被认为是相等的,即使它们是单独的实例。

PHP没有单独的“值对象”概念,它只有一种类型的对象。但是,它的比较运算符可以进行区分:

使用比较运算符(==)时,对象变量以一种简单的方式进行比较,即:如果两个对象实例具有相同的属性和值,并且是同一类的实例,则它们是相等的。

http://www.php.net/manual/en/language.oop5.object-comparison.php

例如:

代码语言:javascript
复制
$address1 = new Address('Main street 42');
$address2 = new Address('Main street 42');

$address1 == $address2;  // true     equal...
$address1 === $address2;  // false   ...but not identical
票数 28
EN

Stack Overflow用户

发布于 2014-10-12 16:16:35

PHP曾经有值对象,但那是在PHP4中。请参阅http://3v4l.org/ghI8G

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

https://stackoverflow.com/questions/9834843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档