我有奇怪的senario我有这个简单的功能,我尝试连接简单的HTML字符串 但是在最后(循环之后)保存该字符串的变量始终为空。
function buildSelectOptionsASString($elmArray)
{
global $optionsStr;
foreach ($elmArray as $Rec)
{
if(property_exists($Rec,'id')==true)
{
$ElmId = $Rec->id;
$ElmName = $Rec->name;
$optionsStr = $optionsStr ."<option value=\"".$ElmId."\">". $ElmName ."</option>\n";
}
}
echo $optionsStr;
return $optionsStr;
}
如果我打印$ ElmId $ ElmName和$ optionsStr,它会打印出罚款 但是当我将返回变量打印到循环外时,其结果为空 为什么?
答案 0 :(得分:0)
您无需将$ optionsStr声明为全局。实际上,如果您将其作为函数的值返回,则不应该。
试试这个:
function buildSelectOptionsASString($elmArray)
{
$optionsStr = ""; // this $optionsStr is local to this function.
foreach ($elmArray as $Rec)
{
if(property_exists($Rec,'id')==true)
{
$ElmId = $Rec->id;
$ElmName = $Rec->name;
$optionsStr = $optionsStr ."<option value=\"".$ElmId."\">". $ElmName ."</option>\n";
}
}
echo $optionsStr;
return $optionsStr;
}
$elmArray = array(); // set up your array here
$optionsStr = buildSelectOptionsASString($elmArray); // This is a different $optionsStr
echo $optionsStr;