我最近一直在做很多Objective-C编程,现在我回到PHP,我必须诚实,我想念命名参数(起初我讨厌它们,现在我爱它们,去图).
无论如何,在PHP中,我有时会看到人们将数组作为命名参数的伪方式传递给函数(附加的好处是不必担心顺序),但有时会使函数编写过于复杂.此外,有时我想用命名参数调用函数,但有时它更容易,更快.
有没有人只是这样做:
function calculateArea( $width, $height ) {
// do calculations here...
}
// and then call the function like so:
calculateArea( $width = 10, $height = 5 );
它似乎工作得很好,至少我的PHP版本,我想知道其他人是否也使用这种技术作为命名参数的解决方法.我也想知道是否有人知道为什么我不应该这样做的一些令人信服的理由.
谢谢!
更新:
感谢所有人的快速回复.为了使事情更清楚,我只想说我理解在大多数情况下传递关联数组是一个更好的选择,但有时你正在处理你已经编写过的函数而你不想改变它们的方式.在代码的每个部分都调用.有时您也在使用辅助框架,并且您无法控制函数的编写方式.
如果我正在查看一年前写的代码,我看到:echo $zc-> expand(‘Foo’,’Bar’,10,1,0,null,null,array(‘class’=> ‘code’),false);,这不是很有帮助.
所以,为了改写我的问题,我基本上是这样问的:
有时通过赋值将参数传递给函数更容易阅读.这样做有什么缺点,它是否适用于所有版本的PHP?
解决方法:
我认为这是一个坏主意,因为如果你的订单错了,你没有任何安全感.使用地图是一种更安全的模拟方法.您还可以在本地范围内设置这些变量的值,这可能是也可能不是问题.
calculateArea( $height = 5, $width = 10 ); # oops!
function calculateArea( $width, $height ) {
// do calculations here...
}
使用数组(map),将它们放入的顺序无关紧要.
calculateArea( array( 'height' => 5, 'width' => 10 ) ) # yea!
function calculateArea( $dimensions ) {
$width = $dimensions['width'];
$height = $dimensions['height'];
}
标签:php,named-parameters 来源: https://codeday.me/bug/20190721/1496142.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。