PHP函数参数 – 使用数组吗?
发布时间:2020-12-13 16:42:30 所属栏目:PHP教程 来源:网络整理
导读:我喜欢使用key =值对(数组)作为参数而不是单个参数来创建我的 PHP函数. 例如,我更喜欢: function useless_func($params) { if (!isset($params['text'])) { $params['text'] = "default text"; } if (!isset($params['text2'])) { $params['text2'] = "defa
我喜欢使用key =>值对(数组)作为参数而不是单个参数来创建我的
PHP函数.
例如,我更喜欢: function useless_func($params) { if (!isset($params['text'])) { $params['text'] = "default text"; } if (!isset($params['text2'])) { $params['text2'] = "default text2"; } if (!isset($params['text3'])) { $params['text3'] = "default text3"; } echo $params['text'].$params['text2'].$params['text3']; return; } 我不喜欢: function useless_func($text = "default text",$text2 = "default text2",$text3 = "default text3") { echo $text.$text2.$text3; return; } 我以前在Wordpress代码库中广泛地看到了这样的事情. 我喜欢数组的原因: >函数参数可以按任何顺序提供 我正在与同事讨论这个问题,他说这是无用的,只是导致额外的代码,更难设置默认值.基本上他完全不同意我的意见. 我正在寻找可能能够提供洞察力的专家的一般建议和指导:做更好或更适当的方法是什么?
嗯,这很有用.但是对于一些传统的论据,总是会使用像函数some($a1,$a2)这样的经典传递.我在代码中这样做:
function getSome(SomeClass $object,array $options = array()) { // $object is required to be an instance of SomeClass,and there's no need to get element by key,then check if it's an object and it's an instance of SomeClass // Set defaults for all passed options $options = array_merge(array( 'property1' => 'default1','property2' => 'default2',... => ... ),$options); } 所以,你可以看到我也喜欢这个代码风格,但是对于核心参数我更喜欢经典风格,因为PHP控制更多的东西,我应该如果我使用你的代码风格. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |