我又有一件不太明白的事。我为您提供以下代码:
<?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变量中的全部select内容,这样我就可以通过调用SelectDateTimeForm()函数来访问它。
现在的问题是,当我在if语句中时(也尝试使用switch case),$r变量的行为似乎有些疯狂。当我离开if并在返回$r之前直接定义$r时,一切似乎都正常。
那么,为什么我不能访问或修改if中的$r变量呢?为什么我会得到未定义变量Notice。
谢谢你的建议。
这不是因为你有多个赋值,而是因为你没有声明它。所以在if()
之上声明$r
。
$r = "";
if($type == 'days'){
.....
}
如果$type
不等于days
,它将不会进入if()
,但您返回的是未声明的$r
。
在if为gloable变量之前声明$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;
}
}