将函数放入PHP中的echo中

时间:2011-12-10 14:38:43

标签: php function echo

我只是想知道你如何把一个函数放在一个echo语句中?

function Catselect($abc){
global $category;
if($category == $abc){
echo 'selected ="selected"';
}
}

echo'
        <select style="width: 260px;" name="category">
        <option value="01" '.Catselect("01").'>Site Related</option>
        <option value="02" '.Catselect("02").'>Tournaments</option>
        <option value="03" '.Catselect("03").'>Articles</option>
        <option value="04" '.Catselect("04").'>Interviews</option>
        <option value="05" '.Catselect("05").'>General</option>
        </select>
        ';

我正在尝试制作一个更新页面,您可以在其中查看以前的类别,所以在此之前,如果您要转到更新页面,则该类别是值为2的锦标赛,比赛类别将自动选中。

但我得到的只是我头上的选择=“选中”这个词。

任何帮助?

6 个答案:

答案 0 :(得分:2)

而不是echo 'selected ="selected"';尝试return 'selected ="selected"';

答案 1 :(得分:1)

更改echo函数中的return,它应该有效。

简单解释一下,既然你已经在html中使用echo语句来输出你的列表项,你只需要在你的函数中返回一个值,之前的echo就会打印它。

答案 2 :(得分:1)

你需要 return 来自函数的值,而不是函数内的echo。你正在做的是你用一个函数的返回值连接一个字符串,这是完全正常的。像:
 'A random number: ' . rand()。该函数被执行,并且从函数返回的任何内容都连接到字符串。如果函数也自己输出一些东西,那就是调用函数时的输出,在它的返回值连接到字符串之前。

答案 3 :(得分:0)

我相信有人会有一个更优雅的解决方案......但这会有效。

function Catselect($abc){
global $category;
$sel1 = ''; $sel2=''; $sel3=''; $sel4=''; $sel5 = '';
switch($abc) {
    case '01': $sel1='selected'; break;
    case '02': $sel2='selected'; break;
    case '03': $sel3='selected'; break;
    default:
    case '04': $sel4 = 'selected'; break;
    case '05': $sel5 = 'selected'; break;
}
return $sel1; return $sel2; return $sel3; return $sel4; return $sel5;
}


echo'
    <select style="width: 260px;" name="category">
    <option value="01" '.Catselect("01").' '.$sel1.'>Site Related</option>
    <option value="02" '.Catselect("02").' '.$sel2.'>Tournaments</option>
    <option value="03" '.Catselect("03").' '.$sel3.'>Articles</option>
    <option value="04" '.Catselect("04").' '.$sel4.'>Interviews</option>
    <option value="05" '.Catselect("05").' '.$sel5.'>General</option>
    </select>
    ';

答案 4 :(得分:0)

您需要返回一个值,而不是在函数中打印。如果$abc是所选类别,那么您应该在函数的$return = "selected=\"selected\""; return $return;语句中写if

答案 5 :(得分:0)

而不是

echo 'selected="selected"'; 

待办事项

return 'selected="selected"';

这将返回字符串,然后将其连接到输出字符串。

您也可以使用三元运算符而不是使用函数,如下所示:

echo'
    <select style="width: 260px;" name="category">
    <option value="01" '.($category == "01" ? 'selected="selected"' : '').'>Site Related</option>
    <option value="02" '.($category == "02" ? 'selected="selected"' : '').'>Tournaments</option>
    <option value="03" '.($category == "03" ? 'selected="selected"' : '').'>Articles</option>
    <option value="04" '.($category == "04" ? 'selected="selected"' : '').'>Interviews</option>
    <option value="05" '.($category == "05" ? 'selected="selected"' : '').'>General</option>
    </select>
    ';