在某些对象上调用 count() 时重载 count() 的行为
在 PHP 5 中,你可以使用魔术方法,重载一些类,等等。在C++中,只要参数类型不同,就可以实现存在的函数。有没有办法在PHP中做到这一点?
我想做的一个例子是这样的:
class a {
function a() {
$this->list = array("1", "2");
}
}
$blah = new a();
count($blah);
我想把2个回来。IE 对类中特定数组的值进行计数。因此,在C++中,我执行此操作的方式可能如下所示:
int count(a varName) { return count(varName->list); }
基本上,我正在尝试简化大型应用程序的数据调用,以便我可以调用以下命令:
count($object);
而不是
count($object->list);
该列表可能是一个对象列表,因此根据它的使用方式,如果有人必须以当前的方式执行此操作,则可能是非常令人讨厌的语句:
count($object->list[0]->list[0]->list);
那么,我可以做一些类似这样的东西:
function count(a $object) {
count($object->list);
}
我知道PHP的计数接受混合变量,所以我不知道我是否可以覆盖单个类型。