【问题标题】:Multiple arguments for a PHP functionPHP 函数的多个参数
【发布时间】:2012-06-08 19:34:03
【问题描述】:

从这里跟进: Apply a specific class/id to current page on menu (PHP)

这是我正在使用的代码:

        <div id="bottoni" style="float:right;margin-top:30px;margin-right:30px">

            <?php
            // funzione per ottenere la class 'current' per la pagina che si sta visitando
            function get_current($name) {
                if (strpos($_SERVER['REQUEST_URI'], $name) !== false)
                    echo 'id="current"';
            }
            ?>

            <a <?php get_current('biografia') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>biografia/"><img style="width:120px;margin-right:25px" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_robertocavosi.jpg"></a>
            <a <?php get_current('attore') ?> <?php get_current('regista') ?> <?php get_current('autore') ?> <?php get_current('riconoscimenti') ?> <?php get_current('pubblicazioni') ?> <?php get_current('insegnamento') ?> id="tooltipclick"><img style="width:120px;margin-right:25px;cursor:pointer" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_curriculum.jpg"></a>
            <a <?php get_current('gallery') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>gallery/"><img style="width:120px;margin-right:25px;border:0" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_gallery.jpg"></a>
            <a <?php get_current('itinera') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>itinera/"><img style="width:120px;margin-right:25px;border:0" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_itinera.jpg"></a>
            <a <?php get_current('contatti') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>contatti/"><img style="width:120px;border:0" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_contatti.jpg"></a>
        </div>

我想在一个“调用”中指定所有这些:

 <?php get_current('attore') ?> <?php get_current('regista') ?> <?php get_current('autore') ?> <?php get_current('riconoscimenti') ?> <?php get_current('pubblicazioni') ?> <?php get_current('insegnamento') ?>

我试过了:

 <?php get_current('attore', 'regista', 'autore', 'riconoscimenti', 'pubblicazioni', 'insegnamento') ?>

但它不起作用......

【问题讨论】:

    标签: php conditional


    【解决方案1】:

    像这样使用func_get_args()

    <?php
    function get_current() {
      foreach (func_get_args() as $arg) {
        if (strpos($_SERVER['REQUEST_URI'], $arg) !== false)
          echo 'id="current"';
      }
    }
    

    然后就可以从 HTML 调用函数了:

    <a <?php get_current('attore', 'regista', 'autore') ?> id="tooltipclick"><img src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_curriculum.jpg"></a>
    

    【讨论】:

      【解决方案2】:

      如果函数被设计为接受多个参数,你不能期望只传递一个函数多个参数并让它工作。

      相反,将您的参数放在一个数组中并在循环中调用该函数:

      <?php
      $args = array('attore', 'regista', 'autore', 'riconoscimenti', 'pubblicazioni', 'insegnamento');
      foreach ($args as $arg) { get_current($arg); }
      ?>
      

      【讨论】:

        【解决方案3】:

        您可以使用func_get_args

        <?php
        // funzione per ottenere la class 'current' per la pagina che si sta visitando
        function get_current() {
            foreach(func_get_args() as $arg) {
                if (strpos($_SERVER['REQUEST_URI'], $arg) !== false) {
                    echo 'id="current"';
                    break;
                }
            }
        }
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-29
          • 1970-01-01
          • 2011-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-13
          • 1970-01-01
          相关资源
          最近更新 更多