请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

count不是可以计算一个普通类中的成员属性吗?为什么老是的课程里会报错呐?为什么我count一个类的对象没有报错,但是不管成员属性是多少个,始终返回1呐?

count不是可以计算一个普通类中的成员属性吗?为什么老是的课程里会报错呐?为什么我count一个类的对象没有报错,但是不管成员属性是多少个,始终返回1呐?

正在回答 回答被采纳积分+3

3回答

ADAll 2020-06-09 23:12:49

https://img1.sycdn.imooc.com/szimg/5edfa65f09c2a23506140257.jpg

这是PHP源码上的说明,不是数组和未实现countable接口时始终返回1;网上说的可以计算普通类中的成员属性数量应该是很久的版本了。

0 回复 有任何疑惑可以回复我~
  • ADAll #1
    至于老师的课程里为什么会报错就不知道了,我这边测试时都是正常打印出1。
    回复 有任何疑惑可以回复我~ 2020-06-09 23:31:43
提问者 梦里江山 2019-06-27 23:00:04
<?php
namespace app\index\controller;

use di\Car;

class Index
{
     public function buy()
    {
        $obj = new Car();
        var_dump($obj);
        echo count($obj);
    }
}

extend\di\Car :

<?php
namespace di;

class Car
{
    public $a = 1;
    public $b = 2;

    public function pay()
    {
        return 123;
    }

    public function count()
    {
        return 3;
    }
}

然后执行结果:

https://img1.sycdn.imooc.com//szimg/5d14d9f00001516a02450144.jpg

0 回复 有任何疑惑可以回复我~
  • 为啥我的代码跟你一样,打印就报错了呢?tp5.1.41 LTS,php7.4.难道跟这两个有关么?
    回复 有任何疑惑可以回复我~ 2021-07-09 15:35:37
singwa 2019-06-27 22:30:03

您好。不是计算普通类中的成员属性的。

您代码可以全部贴下。

0 回复 有任何疑惑可以回复我~
  • 提问者 梦里江山 #1
    老师,您看上方的代码,我没注意把代码帖到了我提问的回复区。我记得手册上说count可以计算对象属性,难道不是这样的类对象吗?难道是我理解错了?
    回复 有任何疑惑可以回复我~ 2019-06-28 09:29:24
  • singwa 回复 提问者 梦里江山 #2
    您PHP哪个版本?
    回复 有任何疑惑可以回复我~ 2019-10-25 17:27:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信