加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

优化代码问题,多个If Else语句PHP

发布时间:2020-12-13 17:07:34 所属栏目:PHP教程 来源:网络整理
导读:我是一个非常可怕的程序员,但我想要变得更好.我最近编写了一些有用的东西,万岁!但我觉得必须有一个更清洁的方式.对象是: 如果存在GET变量,则将其用作cookie值.如果变量不存在,请使用默认值.如果Cookie已存在,请使用该值而不是新值. if (!isset($_COOKIE['i
我是一个非常可怕的程序员,但我想要变得更好.我最近编写了一些有用的东西,万岁!但我觉得必须有一个更清洁的方式.对象是:

如果存在GET变量,则将其用作cookie值.如果变量不存在,请使用默认值.如果Cookie已存在,请使用该值而不是新值.

if (!isset($_COOKIE['id'])) {
  if (!isset($_GET[id])) {
    $cookid="115";
  } else {
    $cookid= $_GET["id"];
  } 
  setcookie("id",$cookid,time() + 31536000);
} else {
  $cookid= $_COOKIE['id'];
}

解决方法

这是我写的方式:

if(isset($_COOKIE['id'])) {
  $cookid = $_COOKIE['id'];
} else {
  $cookid = isset($_GET["id"]) ? $_GET["id"] : "115";

  setcookie("id",time() + 31536000);
}

首先,根据一些约定,您应该测试正面情况(isset(…)),而不是负面(!isset()).我认为它使代码更具可读性,所以我已经改变了它.

其次,我使用了ternary operator(条件?expr1:expr2)来消除if / else块,这是可以接受的,因为你只是使用if / else块来决定分配给变量的两个值中的哪一个.但是,应谨慎使用三元运算符,因为如果过度使用它会使代码的可读性降低.

第三,我更喜欢使用花括号,即使对于单行if / else块,但至少我认为如果你将if用于if,你应该使用花括号.

最后,只是一个可读性说明:尝试与您的空白保持一致.在第四行,你在=周围没有任何空格,但在第六行和第十行你有一个空格,但之前没有空格.为了便于阅读,几乎总是优选在运算符的两侧都有空格.

哦,$_GET [“id”]是正确的; $_GET [id]不是.如果您的错误报告级别足够高,它(正确地)会发出警告(并且您通常应该使用error_reporting(E_ALL)进行开发;因此您可以看到它们).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读