$content = getContent($isAdmin = false)
通常情况下,我所看到的功能而函数的声明就像是
function getContent($isAdmin = true){
....}
为什么会有人添加创建变量的过载并在函数调用中仅使用它一次!
我明白,这使得函数调用清晰,但我们不应该使用PHPDoc块吗?
$content = getContent($isAdmin = false)
通常情况下,我所看到的功能而函数的声明就像是
function getContent($isAdmin = true){
....}
为什么会有人添加创建变量的过载并在函数调用中仅使用它一次!
我明白,这使得函数调用清晰,但我们不应该使用PHPDoc块吗?
我有这样的感觉,你被这么多“浪费”深深地震撼了。
保持冷静,使用变量没什么不好,你应该经常使用它们。他们通常会使您的代码更具描述性,甚至更快。
这里比较具有描述性的部分就是这种情况,如果你看那条线,你会看到哪个参数是因为现在它有一个名字。
但是我们不应该使用PHPDoc块吗?
呃,实际上这和(docblock)的评论无关。即使在函数定义,对于是参数没有评论:
function getContent($isAdmin = true) {
这是由它的名字参数只是定义。
...
* @param $isAdmin bool (optional) true or false, true by default
...
function getContent($isAdmin = true) {
然而,是不是在函数被调用:此外,当你定义函数的文档块参数将只有
$content = getContent($isAdmin = false)
所以,如果你看一下这行(和按任何热键前或鼠标按钮),你已经阅读过。没有必要,只有代码。即使在记事本或未配置的gedit中也能正常工作。
$nonAdmin = false;
$content = getContent($nonAdmin);
而且顺便说一句,如果你的代码需要评论,这通常是一个标志,它太复杂了。此外,参数的名称比docblock更重要。好的名字通常意味着你不需要有一个docblock标签(这意味着:更少的代码来维护),因为这个名字本身就说明了。
此外,现代IDE通过静态分析了解参数的类型,因此您也不需要docblock标记。所以不,你不应该总是使用PHPDocblocks。
写,如:
$content = getContent($isAdmin = false)
让$isAdmin
来,如果你发出var_dump($isAdmin)
定义外连的功能范围,即你bool(false)
。
这样,你节省了VAR分配:
$isAdmin = false;
$content = getContent($isAdmin);
...
someStuff($isAdmin);
这顺便说一下变量赋值是相当便宜。无论如何,即使不存在变量,您仍然有麻烦。 PHP对这样的事情非常好。不要担心变量,即使只使用一次,也要使用它们。他们会改进你的代码。 – hakre