很多开发者都跟我一样,希望自己的代码优雅而富有美感,而有时候大量的变量赋值会让代码整体显得凌乱而损失可读性。接下来我来提供几个赋值方案,供各位大佬参考。
————bdHeart
1.利用array赋值
利用array我们可以把一组关联的数据归为一起,也可以把变量的的多种状态值放在一块。第一种我们好理解,把相关的变量值放在一块,我称其为关联赋值,如下。
<?php
//值空间
$userBase = array(
'name' => 'bdHeart',
'sex' => 'boy',
'age' => '23'
);
//这里我使用遍历,有心的朋友可以测试遍历的方式跟直接赋值哪个更快
foreach($userBase as $userKey => $userValue){
$$userKey = $userValue;
//eval($userKey.'='.$userValue);也可以
}
?>
第二种是:变量在不同状态下赋值,我之称为可选赋值,这种我们经常用?:;三目运算的方式来赋值,但是超过两种值的时候嵌套的三目运算显得特别难看,性能方面的比较大佬们可以自己测试一下,例如:
<?php
$item = 'name';
//值空间,通常这种情况下索引数组使用得最多
$userBase = array(
'name' => 'bdHeart',
'sex' => 'boy',
'age' => '23'
);
$userInfo = $userBase[$item];
?>
2.list()函数赋值
这个函数可以说是一个赋值神器,我想很多人也用过,如果有萌新不知道用法的可以问一下度娘。它表示 ‘把数组中的值赋给一些变量’ ,这跟js中的解构赋值很类似,而且他可以代替array赋值的第一种使用场景,也就是关联赋值。
<?php
$userBase = array( 'bdHeart', 'boy', '23');
list($name,$sex,$age) = $userBase;
?>
3.extract()函数
这个函数在赋值方案上可以看作是list函数的加强版,它直接把关联数组的值赋给与键名同名的变量,可以实现优雅地批量赋值:
$userBase = array(
'name' => 'bdHeart',
'sex' => 'boy',
'age' => '23'
);
extract($userBase,EXTR_OVERWRITE);
关于具体地使用姿势可以询问度娘。
总结:
关于以上几种赋值方案在忽略性能测试的情况下个人的使用情况是这样地:在关联赋值地场景我经常选择使用extract()函数,如果你只能获取到索引数组那么当然选择使用list函数了。然后在可选赋值的场景下如果只有两种值的情况则选择三目运算赋值,大于两种的选择array的方式赋值。
网友评论