从函数调用中设置变量是好的编码风格吗?
Is it good coding style to set variables from within function calls?
考虑这两个例子:
// explicitly setting the variable
$file = '/example.php';
if (file_exists($file)) {
include($file);
}
// setting the variable within a function call
if (file_exists($file = '/example.php')) {
include($file);
}
我对两者都进行了测试,它们的工作原理似乎相同。
第二个看起来更简洁,更不容易出错,尽管字符更少。然而,我从未见过它在实践中被使用过,而且 guides will usually advertise the first method.
是否有任何理由反对以这种方式设置变量?如果是这样,它们是完全具有编码风格性质,还是存在技术差异?还有其他我没有解决的差异吗?
如果有的话,第二个是不必要的混淆。在上面的示例中,这不是什么大问题(可以从名称中推断出足够的信息),但考虑一下这个:
update_user_status($admin = true)
作者的意思是那样设置$admin
变量吗?或者他们只是打错了字,应该是等式检查 ($admin == true
)?
第一种样式对此免疫。
考虑这两个例子:
// explicitly setting the variable
$file = '/example.php';
if (file_exists($file)) {
include($file);
}
// setting the variable within a function call
if (file_exists($file = '/example.php')) {
include($file);
}
我对两者都进行了测试,它们的工作原理似乎相同。
第二个看起来更简洁,更不容易出错,尽管字符更少。然而,我从未见过它在实践中被使用过,而且 guides will usually advertise the first method.
是否有任何理由反对以这种方式设置变量?如果是这样,它们是完全具有编码风格性质,还是存在技术差异?还有其他我没有解决的差异吗?
如果有的话,第二个是不必要的混淆。在上面的示例中,这不是什么大问题(可以从名称中推断出足够的信息),但考虑一下这个:
update_user_status($admin = true)
作者的意思是那样设置$admin
变量吗?或者他们只是打错了字,应该是等式检查 ($admin == true
)?
第一种样式对此免疫。