2012-06-24 62 views
2

如果您有一个实现可数接口的对象,应该使用$object->count()count($object)PHP可数count()或 - > count()

我知道最有可能的差别很小,但如果有人能解释是否存在任何差异,技术上会是什么。

+0

我可以看到唯一的一个很大的区别是当你调用'count($ object)'而没有实现'countable'接口的对象。手册中有一个很好的例子。 http://php.net/manual/en/class.countable.php –

+0

调用'count($ object)'可能会稍微慢一些,因为它在内部必须做额外的检查(参数是什么类型,以及它是否实现'Countable')。 – naitsirch

回答

6

count()可用于阵列和Countable对象。如果您使用的是$object->count(),则您的功能仅限于对象。使用count()你也允许数组。

除此之外,没有区别。你可以看到这里的实现:http://lxr.php.net/xref/PHP_TRUNK/ext/standard/array.c#304

+0

好吧,这是有道理的感谢。无论差异多小,在对象上使用$ object-> count和count($ object)是否有任何技术差异? – Martin

+0

count($ object)实际上只是调用$ object-> count()。 –