【发布时间】:2012-10-31 03:18:02
【问题描述】:
我需要检查对象数组中的 any 对象是否包含某个变量值。
I.E.如果$object_array 包含15 个$object 对象,我想知道其中是否有一个对象的$type 属性设置为$some_type。
该函数的内部并不那么重要,因为它访问$object 的公共get 方法。我可以使用 foreach 或 array_walk 或其他任何东西。我的问题的症结是,我把这个方法放在哪里?
函数如下所示:
public function hasSomeType($object_array,$some_type) {
foreach($object_array as $object) {
if($object->get('type') == '$some_type') {
return true;
}
}
return false;
}
所有测试对象都有一个 $type 属性,可通过其公共 get 方法访问。
我应该把这个方法放在哪里?我应该将其设为$object 类的静态方法吗?
或者我应该创建一个新类,并使用其中一个对象来执行此操作。
我对 PHP 的内置结构(如“迭代器”)及其使用方式极为陌生。我不知道它们是否适用于我的情况。如果能得到任何帮助,我将不胜感激。
谢谢。
编辑: 注意我修复了上面的功能。把“return false”放在合适的地方,把函数签名放进去。
EDIT2:更改了函数名称并添加了$some_type 参数,希望更清楚地表明我正在检查$type 属性以获取某些值。不过,问题仍然是“我该把这个方法放在哪里”?
【问题讨论】:
-
将其作为静态方法放入实用程序类中。也许有时 php 会有扩展方法和原生 linq 支持。
-
我可能倾向于把它放在一个助手中。
标签: php oop static iterator iteration