【发布时间】:2017-06-24 17:59:16
【问题描述】:
Yii2 模型中的规则如下所示:
[
// checks if "level" is 1, 2 or 3
['level', 'in', 'range' => [1, 2, 3]],
]
如果它们是这样的对象不是更好吗?
[
new RangeRule('level', [1, 2, 3])
]
【问题讨论】:
-
我猜是为了性能优化。
-
AFAIK,数组和对象之间的性能差异非常小。
-
请参阅 stackoverflow.com/questions/2193049/php-objects-vs-arrays 和 gist.github.com/Thinkscape/1136563 - PHP 在每个版本的数组优化方面都越来越好。
-
那些基准仍然很旧。我认为需要一个用于 PHP 7 的版本。
-
加载类文件只进行一次。我认为数组使规则更难阅读,但如果可以使用对象来代替,那么没问题。
标签: validation yii2 models rules