Php 无法将数组值存储到$sum中
我让这个学生上课Php 无法将数组值存储到$sum中,php,Php,我让这个学生上课 <?php Class Student { private $name; private $amountOfGrades; private $grades=array(); function __construct(string $name,int $amountOfGrades){ $this->name=$name; $this->amountOfGrades=$amountOfGrade
<?php
Class Student
{
private $name;
private $amountOfGrades;
private $grades=array();
function __construct(string $name,int $amountOfGrades){
$this->name=$name;
$this->amountOfGrades=$amountOfGrades;
}
function setGrades(...$grade)
{
for($i=0;$i<$this->amountOfGrades;$i++)
$this->grades[$i]=$grade;
}
function getGrades(){
return $this->grades;
}
function getAvg(){
$sum=0;
for($i=0;$i<count($this->grades);$i++)
$sum+=$this->grades[$i];
return $sum/$amountOfGrades;
}
}
?>
如果我不能使用,我应该如何将金额存储到sum中以返回平均值+=
提前感谢您的setGrades就是问题所在,您将整个grade数组传递给了每个元素。您还必须使用$this->amountOfGrades而不是$amountOfGrades。看一看;)
var\u dump($this->grades)
对于初学者;这是一个数组数组,而不是你所期望的数字数组,因为setGrades
被破坏了。谢谢你,我从来都不知道rest操作符是一个数组哈哈,我的boooooh,现在我明白了…$grade它本身就是一个数组,谢谢你,我从来都不知道我学的越多,谢谢你帮我放松了我觉得我撞到了一堵砖墙
<?php
require_once "studentClass.php";
$Jack = new Student("Jack",3);
$Jack->setGrades(100,50,69);
print_r($Jack->getAvg());
?>
Fatal error: Uncaught TypeError: Unsupported operand types: array + null in D:\xamp\htdocs\studentClass.php:27 Stack trace: #0 D:\xamp\htdocs\testStudent.php(6): Student->getAvg() #1 {main} thrown in D:\xamp\htdocs\studentClass.php on line 27
<?php
Class Student
{
private $name;
private $amountOfGrades;
private $grades=array();
function __construct(string $name,int $amountOfGrades){
$this->name=$name;
$this->amountOfGrades=$amountOfGrades;
}
function setGrades(...$grade)
{
for($i=0;$i<$this->amountOfGrades;$i++)
$this->grades[$i]=$grade[$i];
}
function getGrades(){
return $this->grades;
}
function getAvg(){
$sum=0;
for($i=0;$i<count($this->grades);$i++) {
$sum+=$this->grades[$i];
}
return $sum / $this->amountOfGrades;
}
}
$Jack = new Student("Jack",3);
$Jack->setGrades(100,50,69);
print_r($Jack->getAvg());
?>