Php 日期和货币是否应始终作为对象传递?

Php 日期和货币是否应始终作为对象传递?,php,zend-framework,data-structures,zend-date,zend-currency,Php,Zend Framework,Data Structures,Zend Date,Zend Currency,帮我解决和同事的争吵 我们使用Zend框架和PHP,我们处理的大部分数据包括日期和价格。我一直认为,在检索数据时(无论是从数据库还是JSON),我们应该立即自动将日期属性转换为Zend_日期对象,将价格属性转换为Zend_货币对象,以确保在操作/比较/显示数据时始终使用这些类的功能。我的论点是,它确保了一致性,我们总是知道数据的形式 我的同事认为,我们应该在检索时保持数据的原样(字符串),在模型或视图中使用时只创建Zend_Date/Zend_Currency对象 谁是对的,为什么 (我相信有人

帮我解决和同事的争吵

我们使用Zend框架和PHP,我们处理的大部分数据包括日期和价格。我一直认为,在检索数据时(无论是从数据库还是JSON),我们应该立即自动将日期属性转换为Zend_日期对象,将价格属性转换为Zend_货币对象,以确保在操作/比较/显示数据时始终使用这些类的功能。我的论点是,它确保了一致性,我们总是知道数据的形式

我的同事认为,我们应该在检索时保持数据的原样(字符串),在模型或视图中使用时只创建Zend_Date/Zend_Currency对象

谁是对的,为什么


(我相信有人会说,在创建对象时会有一个小的速度优化惩罚,但在我们的例子中,这并不重要。)

在OO中,最佳实践肯定是使用对象,因为它们封装了您期望的货币/日期的状态和行为


我对Zend没有经验,但我认为date类会进行一些检查,以确保该日期是有效的日期或引发异常。如果您等到最后一分钟才将日期转换为对象,则可能会使查找错误源和始终传输受污染数据变得更加困难。我的防御性要求我尽快清理来自已知可信来源的数据。

在OO中,最佳做法肯定是使用对象,因为它们封装了您期望的货币/日期的状态和行为


我对Zend没有经验,但我认为date类会进行一些检查,以确保该日期是有效的日期或引发异常。如果您等到最后一分钟才将日期转换为对象,则可能会使查找错误源和始终传输受污染数据变得更加困难。我的防御性要求我尽快清理那些并非来自已知可信来源的数据。

保持一致比在这里“正确”更重要(在许多地方)。保持一致比在这里“正确”更重要(在许多地方)。