PHP中的对象计数

PHP中的对象计数,php,arrays,count,Php,Arrays,Count,我正在使用PHP数组和对象。我已经和他们一起工作很长时间了。但是,我遇到了一个问题,可能有一个非常简单的解决方案 我在一个函数中有一个变量$products,该函数在调用时接收值。我试图数一数变量中的对象,看看里面有多少产品。我尝试了简单的count($products)和count((数组)$products)函数,但它不起作用。我知道这不是计算物品数量的最好方法 有办法数一数吗 object(stdClass)#46 (3) { ["0"]=> object(stdClass)

我正在使用PHP
数组
对象
。我已经和他们一起工作很长时间了。但是,我遇到了一个问题,可能有一个非常简单的解决方案

我在一个函数中有一个变量
$products
,该函数在调用时接收值。我试图数一数变量中的对象,看看里面有多少产品。我尝试了简单的
count($products)
count((数组)$products)
函数,但它不起作用。我知道这不是计算物品数量的最好方法

有办法数一数吗

object(stdClass)#46 (3) {
  ["0"]=>
  object(stdClass)#47 (1) {
    ["productid"]=>
    string(2) "15"
  }
  ["1"]=>
  object(stdClass)#48 (1) {
    ["productid"]=>
    string(2) "16"
  }
  ["2"]=>
  object(stdClass)#48 (1) {
    ["productid"]=>
    string(2) "26"
  }
}
我需要这个来返回
3

object(stdClass)#20 (1) {
  ["productid"]=>
  string(2) "21"
}

我需要这个来返回
1

您可以执行类似的操作

count(get_object_vars($obj));

但将stdClass用作数组似乎有点奇怪。为什么要这样做?

计数功能用于

阵列 从实现可数接口的类派生的对象 stdClass不是这两种类型。完成你追求的目标最简单/最快的方法是

$count = count(get_object_vars($products));
这使用PHP的get_object_vars函数,该函数将以数组形式返回对象的属性。然后,您可以将此数组与PHP的count函数一起使用。

尝试以下方法: $count=sizeof(获取对象变量($products))


在这里,
get\u obj\u vars
函数将
$products
变量转换为数组,
sizeof
函数计算数组的大小,并将其存储到示例中的变量
$count

,使用对象进行此操作似乎是一种非常臃肿的方法。使用一个简单的数组将更容易、更快

这:

可能就是这样:

array(0 => 15);
甚至这个:

array(15);
您的示例似乎只存储了一个产品id,所以您不需要严格地使用“productid”键


您需要使用对象有什么具体原因吗?

如果您使用对象数组而不是包含数字属性的对象,您的生活会轻松得多。你如何生成这个结构,你能改变它吗?为这些产品对象创建一个类,并让它实现可数接口?
array(15);