Как вы ссылаетесь на другой параметр в качестве значения по умолчанию для параметра в функции? - PullRequest
0 голосов
/ 11 ноября 2018

Ниже у меня есть вызов функции, который дает одному из элементов списка класс active (из Bootstrap), если текущее имя файла соответствует первому аргументу giveClassActive(). У каждого элемента списка есть текст, который он будет показывать, ссылка на страницу для перенаправления и имя файла, который он проверяет. Только иногда значения $href и $file различаются, поскольку # должно стать %23. Итак, я хочу дать $href значение по умолчанию $file.

<?php
function giveClassActive($file, $href, $show) {
    echo '<li class = "';
    $filename = explode('/', $_SERVER['SCRIPT_NAME']);
    $file_name = end($filename);
    if ($file_name == $file) {
        echo 'active';
    }
    echo '">';
    echo '<a href = "' . $href . '">' . $show . '</a></li>';
}
giveClassActive('calculator #5.php', 'calculator %235.php', 'Calculator');
giveClassActive('contact.php', 'contact.php', 'Contact'); 
?>

У меня вопрос: как мне ссылаться на другой параметр в определении функции?

Я пытался

function giveClassActive($file, $href = $file, $show) {

и

function giveClassActive($file, $href = this.$file, $show) {

которые производят

Fatal error: Constant expression contains invalid operations in C:\Bitnami\wampstack-7.1.22-1\apache2\htdocs\LarryUllman\Chapter 3\includes\header.html on line 20

Примечание: вывод

Output

Редактировать после постановки на удержание

Мой вопрос отличается от PHP-функции с переменной в качестве значения по умолчанию для параметра , поскольку этот вопрос не задает ссылку на параметр, а скорее на другую переменную.

1 Ответ

0 голосов
/ 06 июня 2019

Best is

if ($href == null)
    $href = $file;
...