优化php控件结构

时间:2018-06-06 22:32:42

标签: php

我有以下问题。我试图结合获取UTM参数并检查cookie是否设置在相同的if中,但最终出错了。

/index?utm_source=icework

这是4个if语句。

  1. 检查网址参数并设置隐藏表单

    if (!isset($_GET['utm_source'])) {
      $UTM_Source = ""; 
    }
    
  2. 如果UTM是通过URL传递的,则有一个函数set会创建一个cookie。 Cookie名称为adtrack_UTM_Source。如果确实存在,请将该字段留空。

    if (!isset($_COOKIE['adtrack_UTM_Source'])) {
      $UTM_Source = "";
    }
    
  3. 如果传递了utm源,请使用utm值

    设置字段值
    if ( isset($_GET['utm_source'] ) ) {
      $UTM_Source = $_GET['utm_source'];
    }
    
  4. 如果存在cookie以再次设置字段的值。

    if (isset($_COOKIE['adtrack_UTM_Source'])) {
      $UTM_Source = "icework";
    }
    
  5. II。隐藏表格字段

    <input type="hidden" id="atUTM_Source" name="atUTM_Source" value="<?php echo strtolower($UTM_Source) ?>"/>
    

    有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以在代码中使用三元运算符方法。简单地:

$UTM_Source = (isset($_GET['utm_source'])) ? $_GET['utm_source'] : "";
$UTM_Source_Cookie = (isset($_COOKIE['adtrack_UTM_Source'])) ? "icework" : "";

答案 1 :(得分:0)

假设您更喜欢$_COOKIE来源$_GET来源,否则只需交换语句:

if( isset($_COOKIE['adtrack_UTM_Source']) ) {
    $UTM_Source = $_COOKIE['adtrack_UTM_Source'];
} else if( isset($_GET['utm_source']) ) {
    $UTM_Source = $_GET['utm_source']; 
} else {
    $UTM_Source = ''; // or whatever default you want
}