我的代码有问题
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();
答案 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