php重复提示语句,PHP – 重构此if语句以避免重复

博客讨论了如何重构PHP代码以避免重复输入$inputs['user_id'],同时确保在使用变量前检查其存在且不为空。建议使用!empty()代替isset()与逻辑与操作,这样可以减少输入次数并保持代码的可读性。尽管!empty()会检查变量是否存在且非空,但不会产生未定义索引的通知。
摘要由CSDN通过智能技术生成

在这段代码中,我们输入$inputs [‘user_id’] 3次.

if (isset($inputs['user_id']) && $inputs['user_id']) { // The consumer is passing a user_id

doSomethingWith($inputs['user_id']);

}

什么是最可读和最强大的重构我可以做什么来避免重复并避免任何通知索引user_id不存在?

谢谢.

解决方法:

重复没有错.在检查变量是否已设置之前,您无法将$inputs [‘user_id’]赋值给变量,否则会生成一个通知未定义的索引….

这里唯一能做的就是省略isset调用并使用!empty,如下所示:

if(!empty($inputs['user_id'])) {

doSomething($inputs['user_id']);

}

现在你只输入两次并检查

!empty($inputs['user_id'])

等于

isset($inputs['user_id']) && $inputs['user_id']

编辑:根据评论,这里引用documentation:

The following things are considered to be empty:

06003

因此,无论是空(0)还是空(‘0’)都将返回true,这意味着

if(!empty('0') || !empty(0)) { echo "SCREW YOU!"; }

什么都不回应……或者,礼貌地说,我将重复上面的陈述:

!empty($inputs['user_id']) === (isset($inputs['user_id']) && $inputs['user_id'])

编辑2:

通过省略isset并替换为!empty,仍然会检查变量,无论索引是否已设置,请阅读documentation,其中说:

No warning is generated if the variable does not exist. That means empty() is essentially the concise equivalent to !isset($var) || $var == false.

标签:php,if-statement,code-duplication

来源: https://codeday.me/bug/20190825/1718835.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值