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