-4

我的函数应该接受两个参数:$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;
4

4 回答 4

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;通常,类是首选方法。

于 2013-07-09T02:17:03.953 回答
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;
于 2013-07-09T02:09:14.040 回答
0

这里是。就像你说的,你错过了一些简单的东西:

function speak($message,$color) {
  return "<span style='color:$color;'>$message</span>";
 };
于 2013-07-09T02:09:30.047 回答
-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>
于 2013-07-09T02:13:48.730 回答