Несколько аргументов для функции PHP

Следуйте за этим: примените определенный класс / id к текущей странице в меню (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') ?> 

Но это не работает …

Используйте 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> 

Вы не можете рассчитывать просто передать функцию с несколькими аргументами и заставить ее работать, если функция предназначена для принятия нескольких аргументов.

Вместо этого поместите свои аргументы в массив и вызовите функцию в цикле:

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

Вы можете сделать это с помощью 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; } } } ?>