PHP类函数ArgumentCountError报错:参数不足问题咨询
问题分析与解决建议
核心错误点
- Getter方法冗余参数:
get_semester()和get_balance()被错误定义为需要接收参数,但Getter方法的作用是读取对象已存储的属性,不需要额外传参。调用时未传参就触发了ArgumentCountError。 - 未定义变量调用:最后一行
echo $balance->get_balance();中的$balance变量不存在,实际创建的对象是$fallBalance,变量名书写错误。
修正后的代码
<?php class StudentAccountInquiry{ public $semester; public $balance; function set_semester($semester){ $this->semester = $semester; } function set_balance($balance){ $this->balance = $balance; } // 移除Getter方法的多余参数 function get_semester(){ return $this->semester; } // 移除Getter方法的多余参数 function get_balance(){ return $this->balance; } } $fall = new StudentAccountInquiry(); $fallBalance = new StudentAccountInquiry(); $fall->set_semester('Fall 2022'); $fallBalance->set_balance('$10,000'); echo $fall->get_semester(); // 修正变量名为$fallBalance echo $fallBalance->get_balance(); ?>
额外优化提示
- 建议将类的属性设为
private,仅通过Getter/Setter方法访问修改,提升代码封装性。 - 可使用PHP魔术方法
__get()和__set()简化Getter/Setter的编写,减少重复代码。
内容的提问来源于stack exchange,提问作者Patrick Murray
相关产品推荐
相关产品推荐

