功能:在开关和foreach内部时如何传递参数?

时间:2019-01-21 19:21:39

标签: php

如果有人能够向我展示如何在函数内部有一个开关和一个foreach循环时如何将变量作为参数传递的简短示例,那就太好了

我希望做的是在我的函数中使用这些开关实例($ tax-plates-formes,$ tax-editeurs ...)中的所有已定义变量作为参数(例如== my_function($ tax-板形式)或my_function($ tax-editeurs))。为了简单地回显不同变量的值。

让我们总结一个类似的情况:

function get_tax_terms_for_the_product() {
 // Get post by post ID.
 if ( ! $post = get_post() ) {
     return '';
 }

 // Get post type by post.
 $post_type = $post->post_type;

 // Get the singular_name of the cpt
 $post_type_obj = get_post_type_object( $post_type );

 // Get post type taxonomies.
 $taxonomies = get_object_taxonomies( $post_type, 'objects' );

 $out = array();
 $out[] .= '<ul class=cpt-ul><li class="bloc-info-elements info-cpt">'.$post_type_obj->labels->singular_name.'</li></ul>';

 foreach ( $taxonomies as $taxonomy_slug => $taxonomy ){

     // Get the terms related to post.
     $terms = get_the_terms( $post->ID, $taxonomy_slug );

     // If tax is hierarchical
     if( is_taxonomy_hierarchical( $taxonomy_slug )) {

         if ( ! empty( $terms ) ) {

             switch ($taxonomy_slug) {

                 case "tax-plates-formes":
                     $info_plates_formes[] .= '<ul class="ul-info-platesformes">';
                 break;

                 default:
                     $info_categories[] .= '<ul class="ul-info-categories">';
             }

             foreach ( $terms as $term ) {
                 if( $term->parent == 0  ) {
                   continue;
                 }

                 // We switch the HTML output in order to give them custom CSS classes
                 switch ($taxonomy_slug) {

                     case "tax-plates-formes":
                         $info_plates_formes[] .= '<li class="info-plateformes">'.$term->name.'</li>';
                     break;

                     default:
                         $info_categories[] .= '<li class="li-info-categories">'.$term->name.'</li>';
                 }
             }
         }
     }

     // If tax isn't hierarchical
     else {

         if ( ! empty( $terms ) ) {

             switch ($taxonomy_slug) {

                 case "tax-annees-de-sortie":
                     $info_annee_sortie[] .= '<ul class="ul-info-annee-sorties">';
                 break;

                 case "tax-editeurs":
                     $info_editeurs[] .= '<ul class="ul-info-editeurs">';
                 break;

                 case "tax-modele-economique":
                     $info_modele_economique[] .= '<ul class="ul-info-modele-economique">';
                 break;

             }

             foreach ( $terms as $term ) {

                 // We switch the HTML output in order to give them custom CSS classes
                 switch ($taxonomy_slug) {

                     case "tax-annees-de-sortie":
                         $info_annee_sortie[] .= '<li class="info-annees-de-sortie">'.$term->name.'</li>';
                     break;

                     case "tax-editeurs":
                         $info_editeurs[] .= '<li class="info-editeurs">'.$term->name.'</li>';
                     break;

                     case "tax-modele-economique":
                         $info_modele_economique[] .= '<li class="info-modele-economique">'.$term->name.'</li>';
                     break;
                 }
             }
         }
     }
 } return;
}

有人可以帮我一些忙吗?

致谢。

0 个答案:

没有答案