如何调试数字码和中的问题?

时间:2019-02-07 05:46:19

标签: php

我的代码有问题

Warning: Cannot use a scalar value as an array in /opt/lampp/htdocs/programe/sumDigit.php on line 410

代码如下:

class SumOfDigit{
    public $sum = 0;
    public $num ;
    public function __construct($n) {
        $this->num = $n;        
    }

    public function equation() {
        for($i= 0; $i<strlen($this->num); $i++){
            $this->num[$i] = array_map('intval', str_split($this->num));
            $this->sum +=  $this->num[$i];
            print_r($this->sum);
        }
    }
}

$obj = new SumOfDigit(232);
echo $obj->equation();

2 个答案:

答案 0 :(得分:0)

首先在代码中为“ num”分配一个整数

  

$ this-> num = $ n;

在函数equation()中,您也使用与数组相同的值

  

$ this-> num [$ i] = array_map('intval',str_split($ this-> num));

更改任何变量的名称,然后尝试。

希望有帮助

答案 1 :(得分:0)

基于类的名称,我假设您想对创建类对象的值中的数字求和。在这种情况下,您可以通过在array_sum的输出上使用str_split来简化代码:

Class SumOfDigit{
    public $sum = 0;
    public $num;

    public function __construct($n){
        $this->num = $n;
    }

    public function equation(){
        $this->sum = array_sum(str_split($this->num));
        return $this->sum;
    }
}

$obj = new SumOfDigit(232);
echo $obj->equation();

输出:

7

Demo on 3v4l.org