返回在函数中已跨越样式的字符串

时间:2013-07-09 02:05:50

标签: php

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

答案 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>