Shortcode API使用不同的属性更改返回值

I have an shortcode that i would like it to pass an different class once a certain attribute is added to the shortcode. How do you do that? or what is the best way to do this?

Shortcode:

function one_half_columns($atts, $content = null){
    $type = shortcode_atts( array(
        'default' => 'col-md-6',
        'push' => 'col-xs-6'
    ), $atts );

    return '<div class="' . $type['push'] . '">' . do_shortcode($content) . '</div>';;
}
add_shortcode('one_half', 'one_half_columns');

Example when wordpress user enter [one_half type="push"] i want it to use the value of push in array col-xs-6.

You're example has a couple of problems - you are passing an argument of "type" in your shortcode, but then expecting arguments of "default" and "push" in your shortcode. What you want to do is assign the results of shortcode_atts() to $atts and then use an if statement or switch case on $atts['type'];

function one_half_columns($atts, $content = null){
    // populate $atts with defaults
    $atts = shortcode_atts( array(
        'type' => 'default'
    ), $atts );

    // check the value of $atts['type'] to set $cssClass
    switch( $atts['type'] ){
        case 'push':
            $cssClass = 'col-xs-6';
            break;
        default:
            $cssClass = 'col-md-6';
            break;
    }

    return '<div class="' . $cssClass . '">' . do_shortcode($content) . '</div>';
}
add_shortcode( 'one_half', 'one_half_columns' );

Now when you call:

[one_half type="push"]my content[/one_half]

You should get the output:

<div class="col-xs-6">my content</div>