博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php图片赋值,php如何优雅地赋值
阅读量:5740 次
发布时间:2019-06-18

本文共 1193 字,大约阅读时间需要 3 分钟。

87ddc07f9648?from=timeline

图片发自简书App

很多开发者都跟我一样,希望自己的代码优雅而富有美感,而有时候大量的变量赋值会让代码整体显得凌乱而损失可读性。接下来我来提供几个赋值方案,供各位大佬参考。

————bdHeart

1.利用array赋值

利用array我们可以把一组关联的数据归为一起,也可以把变量的的多种状态值放在一块。第一种我们好理解,把相关的变量值放在一块,我称其为关联赋值,如下。

//值空间

$userBase = array(

'name' => 'bdHeart',

'sex' => 'boy',

'age' => '23'

);

//这里我使用遍历,有心的朋友可以测试遍历的方式跟直接赋值哪个更快

foreach($userBase as $userKey => $userValue){

$$userKey = $userValue;

//eval($userKey.'='.$userValue);也可以

}

?>

第二种是:变量在不同状态下赋值,我之称为可选赋值,这种我们经常用?:;三目运算的方式来赋值,但是超过两种值的时候嵌套的三目运算显得特别难看,性能方面的比较大佬们可以自己测试一下,例如:

$item = 'name';

//值空间,通常这种情况下索引数组使用得最多

$userBase = array(

'name' => 'bdHeart',

'sex' => 'boy',

'age' => '23'

);

$userInfo = $userBase[$item];

?>

2.list()函数赋值

这个函数可以说是一个赋值神器,我想很多人也用过,如果有萌新不知道用法的可以问一下度娘。它表示  ‘把数组中的值赋给一些变量’  ,这跟js中的解构赋值很类似,而且他可以代替array赋值的第一种使用场景,也就是关联赋值。

$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的方式赋值。

转载地址:http://obnzx.baihongyu.com/

你可能感兴趣的文章
R语言的三种聚类方法
查看>>
55%受访企业将物联网战略视为有效竞争手段
查看>>
深入理解Python中的ThreadLocal变量(上)
查看>>
如果一切即服务,为什么需要数据中心?
查看>>
《游戏开发物理学(第2版)》一导读
查看>>
Erlang简史(翻译)
查看>>
深入实践Spring Boot2.4.2 节点和关系实体建模
查看>>
信息可视化的经典案例:伦敦地铁线路图
查看>>
10个巨大的科学难题需要大数据解决方案
查看>>
Setting Up a Kerberos server (with Debian/Ubuntu)
查看>>
用 ThreadLocal 管理用户session
查看>>
setprecision后是要四舍五入吗?
查看>>
shiro初步 shiro授权
查看>>
上云就是这么简单——阿里云10分钟快速入门
查看>>
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>