我的函数应该接受两个参数:$message
,它只是一串单词,而$color
是一个带有颜色名称的字符串。
我想这样做,以便将变量$color
中的颜色添加到$message
,并且返回的最终结果将是span
样式,并且颜色应用于消息。我一直在网上寻找解决方案,但没有运气。这是迄今为止的代码。我错过了什么?
function speak($message,$color) {
//supposed to convert $message into <span style='color:$color;'>$message</span>
return "$message$color";
};
//red as the span style color
$red="red";
//message that will accept span style
$mess="Hello World";
//invoke function speak to style them both
$total=speak($mess,$red);
//output total
echo $total;
答案 0 :(得分:2)
如前所述,代码中的注释已经说明了函数应该做什么:
//supposed to convert $message into <span style='color:$color;'>$message</span>
所以,让我们把它变成一个实际的陈述:
return "<span style='color:$color;'>$message</span>";
哇,不是那么快!你应该返回有效的 HTML,所以你必须正确地转义变量;有多种方法可以做到这一点,但我更喜欢使用sprintf()
:
return sprintf('<span style="color: %s;">%s</span>',
htmlspecialchars($color, ENT_QUOTES, 'UTF-8'),
htmlspecialchars($message, ENT_QUOTES, 'UTF-8')
);
另请参阅:htmlspecialchars()
顺便说一下,应该避免使用内联CSS;通常,课程是首选方法。
答案 1 :(得分:0)
试试这个:
您只需要将这行代码放入变量中或直接返回它:
$mes = "<span style='color:$color;'>$message</span>";
代码:
function speak($message,$color) {
//supposed to convert $message into <span style='color:$color;'>$message</span>
$mes = "<span style='color:$color;'>$message</span>";
return $mes;
};
//red as the span style color
$red="red";
//message that will accept span style
$mess="Hello World";
//invoke function speak to style them both
$total=speak($mess,$red);
//output total
echo $total;
答案 2 :(得分:0)
在这里。就像你说的,你错过了一些简单的事情:
function speak($message,$color) {
return "<span style='color:$color;'>$message</span>";
};
答案 3 :(得分:-2)
<?php
function speak($message, $color) {
return <<<END_OF_HTML
<span style="color:$color;">$message</span>
END_OF_HTML;
}
echo speak("hello", "blue");
?>
--output:--
<span style="color:blue;">hello</span>