【发布时间】:2017-10-18 04:55:51
【问题描述】:
如果标题不清楚,我深表歉意,但我觉得这很难描述。基本上,我有一个函数可以在给定班级 ID 号和日期的情况下查找班级(学校类型)的实例。如果需要,该函数还可以创建一个新的类实例。
function get_class_instance($class_id, $date, $create)
函数内部是对 class_instances 表的数据库选择,使用 class_id 和 date 作为参数。如果找到匹配的 class_instance,则返回其 ID。如果没有找到,则 create 参数有一个条件。如果为真,则使用数据库插入创建一个新的 class_instance,并返回其 ID。如果为 false,则数据库中没有任何更改并返回 false。
我仍然是 PHP 和编码的初学者,所以我认为可能有更好的方法。问题是在调用函数时,有人可能不清楚为什么要传递一个布尔值。
$original_cinstance_id = get_class_instance($original_class_id, $original_date, 1);
【问题讨论】:
-
查找“枚举数”。我不认为它真的有那么大的问题,但根据所传递标志的性质,您可以创建一个辅助数据结构,该结构基本上给出布尔或整数标志语法含义。
-
你在寻找类似this的东西
-
将布尔标志传递给函数以使它们做两件不同的事情而不仅仅是一件事情,这在 Robert Martin 的 Clean Code book 中被认为是 Code Smell。建议的更好的选择是有两个函数
get_whatever和create_whatever。 -
@Gordon,我认为你是对的。我知道有些事情感觉不对劲,你说出了原因。另外,如果我想在搜索中使用“标志”,我可能会看到很多。无论如何,如果您想将此信息放入答案中,我会将其标记为已接受。