назначение нескольких переменных, вызывающее неопределенную переменную

1

я снова что-то не понимаю. Я предоставляю вам следующий код:

<?php
class Helper
{
  static function SelectDateTimeForm($type)
  {
    if($type == 'days')
    {
      $r .= "<select name='something'>";
      for ($x = 1; $x <= 31; $x++) {
        $r .= "<option value='$x'>$x</option>";
      }
      $r .= "</select>";
    }
    return $r;
  }
}
?>

Поэтому я хочу просто вернуться к целому элементу выбора внутри переменной $ r, чтобы я мог получить к нему доступ, вызывая функцию SelectDateTimeForm().

Проблема заключается в том, что, хотя я внутри оператора if (также пытаюсь использовать его с корпусом коммутатора), переменная $ r, похоже, действует как-то сумасшедшая. Когда я оставляю if и определяю $ r непосредственно перед возвратом $ r, все работает.

Так почему я не могу получить доступ или изменить переменную $ r внутри if? И почему я получаю неопределенную переменную Уведомление.

Спасибо, совет.

Теги:
for-loop
loops
function-declaration
variable-declaration

2 ответа

1
Лучший ответ

Это не потому, что у вас есть несколько назначений, потому что вы не объявили об этом. Поэтому объявите $r выше if().

$r = "";
if($type == 'days'){
 .....
}

Если $type не равен days, он не будет вводить if(), но вы возвращаете $r который не объявлен.

  • 0
    Да, я проверил свою переменную $ type, и она была написана заглавными буквами ... Спасибо, что дали мне удар!
  • 0
    Неужели решен вопрос ??
Показать ещё 1 комментарий
1

объявить $ r раньше, если быть перегруженной переменной

class Helper
{
  static function SelectDateTimeForm($type)
  {
    $r = '';  
    if($type == 'days')
    {
      $r .= "<select name='something'>";
      for ($x = 1; $x <= 31; $x++) {
        $r .= "<option value='$x'>$x</option>";
      }
      $r .= "</select>";
    }
    return $r;
  }
}
  • 0
    Хорошо, я объявил это, уведомление исчезает, но переменная по-прежнему не изменяется внутри оператора if. Что мне не хватает?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню