将数据传递给函数 - 变量或数组(对象)的最佳实践是什么。
例如,我需要大多数功能的用户信息。我应该传递包含所有信息的完整用户对象,还是只传递我需要的信息(始终是用户名,有时是 id,很少有其他用户信息)
function do_something($data, $user) // $user is object
or
function do_something($data, $user_name, $user_id) // only variables
此案例的最佳实践是什么?
作为一名开发人员,当您开始编码时,您需要满足一定数量的功能才能使其正常工作,其中一些也可能是可选的,因此您开始创建一个类似于下面的方法签名。
function do_something($var1, $var2, $var3, $var4 = false, $var5 = '') {
//process business logic here
}
现在,假设您实现了功能和其他改进并获得了更多反馈。如果建议的功能或改进要求您更改方法签名以合并新变量并且您使用默认值,那么您就有点尴尬了。
那么避免此类情况的最佳方法是什么?在我看来,如果您使用接受变量的函数,它可以轻松地扩展以接受更多参数,而不会通过接受数组作为单个参数来破坏任何内容。该数组必须在代码内部的某处构建,或者通过用户在外部构建。
所以你可以将上面的逻辑重写如下:
function do_something($args = array()) {
$myvar = (array_key_exists('mykey', $args)) ? $args['mykey'] : get_default_value('mykey');
//process business logic here
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)