多变量赋值导致未定义变量

时间:2015-11-05 09:59:25

标签: php loops for-loop variable-declaration function-declaration

我又一次我不太明白的事情。 我提供以下代码:

<?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语句中(也尝试使用switch case),$ r变量似乎有点疯狂。 当我离开if并在返回$ r之前直接定义$ r时,一切似乎都有效。

那么为什么我不能访问或修改if里面的$ r变量呢?为什么我得到Undefined变量通知。

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

这不是因为你有多个任务,因为你没有声明它。因此,$r上方if()声明。

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

如果$type不等于days,则不会输入if(),但您将返回未声明的$r

答案 1 :(得分:1)

如果要成为gloabl变量,则声明$ 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;
  }
}