2015-09-25 3 views
-4

У меня есть следующий код, в котором я попытался передать переменную с именем «$ tutorDetailYearOfBirth» в функцию.Передать переменную параметру функции в php

Однако функция keep не обнаруживает значение $ tutorDetailYearOfBirth.

function yearDropdown($startYear, $endYear, $id="yearOfBirth", $match=$tutorDetailYearOfBirth) 
{ 
    echo "<select id=".$id." name=".$id." class='form-control'>n"; 
    for ($i=$startYear;$i<=$endYear;$i++){ 
     //echo "<option value=".$i.">".$i."</option>n"; 
     echo '<option value="'.$i.'" '.(($i==$match)?'selected="selected"':"").'>'.$i.'</option>'; 
    } 
    echo "</select>"; 
} 
+2

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

+0

Цитирование из [PHP Docs] (HTTP: // WWW. php.net/manual/en/functions.arguments.php) - 'Значение по умолчанию должно быть константным выражением, а не (например) переменной, членом класса или вызовом функции. –

+0

Мне интересно об использовании вы планировали это. –

ответ

0

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

Удалить $match = и обновить вашу функцию, чтобы использовать $tutorDetailYearOfBirth и не $match

function yearDropdown($startYear, $endYear, $id="yearOfBirth", $tutorDetailYearOfBirth){ 
.... 
+0

Как изменится имя переменной в функции? Это просто нарушает его функцию. – Styphon

+0

Вы пропустили '$ id' делает то же самое., –

+0

@AlanMachado' $ id' устанавливается в значение по умолчанию - строку. – MaggsWeb

1

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

function yearDropdown($startYear, $endYear, $id="yearOfBirth", $match){ 
    //function code here... 
} 

yearDropdown($startYear, $endYear, $id, $tutorDetailYearOfBirth); 
+0

О, и теперь вы добавляете некоторые детали ... – MaggsWeb

+1

@MaggsWeb Не имеет значения, добавляю ли я детали после публикации, это не делает ваш ответ менее опасным. – Styphon

+0

@MaggsWeb, что вы имеете в виду? Нет ничего плохого в редактировании вашего вопроса/ответа – CodeGodie

Смежные вопросы