@hollanditkzn

Ошибка Cannot redeclare radio(), почему?

Не пойму почему у меня функция не работает, пишет ошибку
Cannot redeclare radio() (previously declared in C:\OpenServer\domains\hostTraining\frontend\views\test\update.php:6)

Когда включаю функцию
function radio($answer, $right, $number){
    if ($answer == $right){
        return '<label><input type="radio" name="right" class="radio radio-'.$number.'" value="'.$answer.'" checked><span>Правильный</span></label>';
    } else {
        return '<label><input type="radio" name="right" class="radio radio-'.$number.'" value="'.$answer.'" checked><span>Правильный</span></label>';
    }
}

Так просто намного меньше мне писать, нежели постоянно объявлять
<?= Html::beginForm(['test/update', 'id' => $model->id], 'post') ?>
    <div>
        <label>Вопрос </label>
        <?= Html::input('text', 'Question', $model->name, ['class' => ['form-control']]) ?>
    </div>
    <div>
        <label>Ответ 1 </label>
        <?php echo Html::input('text', 'Answer[1]', $answer[1], ['class' => 'answer-1']);
        if ($answer[1] == $right){
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[1].'" checked><span>Правильный</span></label>';
        } else {
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[1].'"><span>Правильный</span></label>';
        }
    </div>
    <div>
        <label>Ответ 2 </label>
        <?php echo Html::input('text', 'Answer[2]', $answer[2], ['class' => 'answer-2']);
        if ($answer[2] == $right){
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[2].'" checked><span>Правильный</span></label>';
        } else {
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[2].'"><span>Правильный</span></label>';
        }
    </div>
    <div>
        <label>Ответ 3 </label>
        <?php echo Html::input('text', 'Answer[3]', $answer[3], ['class' => 'answer-3']);
        if ($answer[3] == $right){
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[3].'" checked><span>Правильный</span></label>';
        } else {
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[3].'"><span>Правильный</span></label>';
        }
    </div>
    <div>
        <label>Ответ 4 </label>
        <?php echo Html::input('text', 'Answer[4]', $answer[4], ['class' => 'answer-4']);
        if ($answer[4] == $right){
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[4].'" checked><span>Правильный</span></label>';
        } else {
            echo '<label><input type="radio" name="right" class="radio radio-1" value="'.$answer[4].'"><span>Правильный</span></label>';
        }
    </div>
    <?php echo FileInput::widget(['name' => 'attachment[]']) ?>
    <div class="form-group">
        <?= Html::submitButton('Редактировать', ['class' => 'btn btn-primary']); ?>
        <?= Html::a('Удалить', ['test/delete', 'id' => $model->id], ['class' => 'btn btn-danger']) ?>
    </div>
<?= Html::endForm() ?>

Кто может сказать, в чем проблема?
Вот весь файл на gitgube https://github.com/hollandit/trainingYii/blob/mast...
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
AK-VoronM
@AK-VoronM
"Мало-мало программист"
Cannot redeclare radio() (previously declared in C:\OpenServer\domains\hostTraining\frontend\views\test\update.php:6)


Вам интерпретатор так и говорит, что он не может переопределить функцию, она уже определена в файле update.php на 6 строчке. И этот файл подключен к текущему.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Проблема в том, что у вас уже есть одна функция с названием radio, и нельзя вот так просто объявить вторую, с таким-же названием.
И вообще, у вас там лапша. Не надо так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы