基于函数参数的变量内容

时间:2017-06-23 21:10:46

标签: php

我希望html的输出根据用户可以设置的参数返回两个可能的标记。用户可以通过添加text_modebasic来定义参数advanced

现在,$output设置为进行测试,以显示用户的字符串包含在<p>中的基本版本。如果text_mode设置为高级,则表示未包装。

<?php
function PCHiddenTextBlock( $settings = array() ) {

//---- Get Settings ----
//The functions default settings will be merged with what's passed in.

$settingsDefault = array(
    'small_heading' => '',
    'text' => '',
    'text_mode' => 'basic', //or advanced
    'color_scheme' => 'accent4',//accent4 or accent1
    'container_id' => '',
    'container_class' => 'x_extraContent',
);

$settings = array_merge($settingsDefault, $settings);


//---- Set Variables ----
//These will allow the markup build up to be as clean as possible.


//If container_id is set, prepare the attribute
$has_container_id = strlen($settings['container_id']) > 0;
$possible_container_id_attribute = ($has_container_id) ? " id='{$settings['container_id']}'" : "";

//Color scheme variables
switch($settings['color_scheme']) {
    case 'accent1':
        $gcol_color_class = 'bg-color-accent1-C';
                $color_accent_class = 'color-accent1-8';
                $hover_color_class = 'hover-color-base-4';
        break;

    default: //accent4
        $gcol_color_class = 'bg-color-accent4-D';
                $color_accent_class = 'color-accent4-A';
                $hover_color_class = 'hover-color-base-4';
}


//---- Build Output ----
//Line by line, concatenating strings with new line and tab characters.
$output  = "\n<!-- Hidden Text Block -->";
$output .= "\n<div class='{$settings['container_class']} gcol-1 {$gcol_color_class}'{$possible_container_id_attribute}>";
$output .= "\n\t<div class='padbox-standard-content'>";
$output .= "\n\t\t<h2 class='small-heading color-accent1-9'>{$settings['small_heading']}</h2>";
$output .= "\n\t\t<p>{$settings['text']}</p>"; // basic version
$output .= "\n\t\t<a href='' class='x_extraContentClose box-close-icon {$color_accent_class} {$hover_color_class}'></a>";
$output .= "\n\t</div><!-- padbox-standard-content-->";
$output .= "\n</div><!-- Hiddent Text Block -->";

//---- Return Output ----
  return $output;
}

1 个答案:

答案 0 :(得分:2)

只需使用if声明:

if ($settings['text_mode'] == 'basic') {
    $output .= "\n\t\t<p>{$settings['text']}</p>"; // basic version
} else {
    $output .= "\n\t\t{$settings['text']}<"; // advanced version
}