0

それらの小切手を書く正しい方法は何ですか。配列がありますが、一部の時間値が設定されていないか、空です。今のところ、そのコードは少し読みづらいですが、それをより明確で信頼できるものにするために何ができるでしょうか。または私はこれに一生懸命行くつもりです。助言がありますか?

<?php 

private static function filter_yt_data($yt_api_response = null)
    {
        $data     =    array(); 
        $api      =    json_decode($yt_api_response);
        $api      =    $api->data->items[0];



        $data = array(
                    'id'            =>   $api->id,
                    'author'        =>   e($api->uploader),
                    'label'         =>   e($api->category),
                    'title'         =>   e($api->title),
                    'description'   =>   e($api->description),
                    'duration'      =>   $api->duration,
                    'view_count'    =>   $api->viewCount,
                    'access'        =>   $api->accessControl->embed,
                    'favorite_count'=>   $api->favoriteCount
                    );

        if($api->accessControl->comment == 'allowed')
        {
           $data['comment_count']   =   $api->commentCount;
        }
        else
        {
            $data['comment_count']  =   0;
        }

        if($api->ratingCount)
        {
            $data['rating_count']  =   $api->ratingCount;
        }
        else
        {
            $data['rating_count']  =   0;
        }

        if($api->accessControl->rate == 'allowed')
        {
            $data['like_count'] =   $api->likeCount;
        }
        else
        {
            $data['like_count'] =   0;
        }

        if($api->thumbnail->hqDefault)
        {
            $data['thumbnail'] =   $api->thumbnail->hqDefault;
        }
        elseif($api->thumbnail->sqDefault)
        {
            $data['thumbnail'] =   $api->thumbnail->sqDefault;

        }else
        {
            $data['thumbnail'] = null;
        }

        return $data;
    }

?>
4

2 に答える 2

5
if($api->accessControl->comment == 'allowed')
        {
           $data['comment_count']   =   $api->commentCount;
        }
        else
        {
            $data['comment_count']  =   0;
        }

また、次のようになります。

$data['comment_count'] = $api->accessControl->comment == 'allowed' ? $api->commentCount : 0;

これは三項演算子と呼ばれます

構文:

$variable = (condition) ? if condition true : else;

このようにして、すべてのif-elseステートメントを置き換えることができます。

于 2013-02-04T21:01:51.400 に答える
1

1つの方法は、デフォルト値を初期化してからチェックを行うことです。

    $data['comment_count']  =   0;
    if($api->accessControl->comment == 'allowed'){
       $data['comment_count']   =   $api->commentCount;
    }
    $data['rating_count']  =   0;
    if($api->ratingCount){
        $data['rating_count']  =   $api->ratingCount;
    }
    $data['like_count'] =   0;
    if($api->accessControl->rate == 'allowed'){
        $data['like_count'] =   $api->likeCount;
    }
    $data['thumbnail'] = null;
    if($api->thumbnail->hqDefault){
        $data['thumbnail'] =   $api->thumbnail->hqDefault;
    }elseif($api->thumbnail->sqDefault){
        $data['thumbnail'] =   $api->thumbnail->sqDefault;
    }

これらは、元のアレイで初期化することもできます。

于 2013-02-04T21:02:33.087 に答える