【发布时间】:2015-09-24 09:21:46
【问题描述】:
这似乎是一个愚蠢而琐碎的问题。我在 PHP 中命名函数时遇到问题。我有两个函数可以根据学生的 id 或姓名和电子邮件检索学生的所有信息。
由于 PHP 没有与 JAVA 相同的函数重载,我很难命名函数。
这就是我所做的。这些是我给他们起的名字。
get_students_with_id($id) 和 get_students_with_name_and_email($name, $email)
但是参数会增加。我需要一个更好更简单的解决方案来命名这些函数或方法。顺便说一句,它们都属于同一类。那我该怎么办?提前致谢。
【问题讨论】:
-
这些函数名有什么问题?
-
如果我想获取一个学生的 id、姓名、电子邮件、密码、班级、部门等。那么函数名称将类似于
get_student_with_id_and_name_and_email_and_password_and_class_and_section。你有我的问题吗? -
这很正常,get_student_by_id、get_student_by_email 等。除非您愿意,否则您不必为函数提供完整的有意义的名称和描述等。不幸的是,PHP 中没有函数重载,但您可以编写一个函数
get_student()并使用get_func_args()来确定提供了哪种输入来选择获取信息的最佳方式。 -
参数越多,函数名越复杂
-
在我看来,您应该创建类似
search_students(array $queries)的方法,该方法接受一个或多个搜索查询(例如使用多维数组)。然后,该方法可以使用这些查询在数据库中搜索记录。为表中每个可能的列组合使用一种方法是愚蠢的。
标签: php function methods naming-conventions php-5.5