2013-07-09 5 views
-3

Моя функция должна принимать два параметра: $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; 
+9

У вас уже есть ответ в комментарии в вашей функции ... – jeroen

ответ

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; 
+0

AHhh, который работал благодаря большому счету. Я пробовал это раньше, но упускал двойные кавычки вокруг пролета. – Mrlowrider

0

Вот. Как вы сказали, что вы что-то легкое отсутствует:

function speak($message,$color) { 
    return "<span style='color:$color;'>$message</span>"; 
}; 
-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> 
+0

Как насчет 'echo speak ('', 'hello">'); '? –

+0

Если это то, чего хочет вызывающий, это то, что получает вызывающий. – 7stud

2

Как упоминалось выше, комментарий в коде уже говорит о том, что функция должна делать:

//supposed to convert $message into <span style='color:$color;'>$message</span> 

Итак, давайте обратимся, что в фактическое заявление:

return "<span style='color:$color;'>$message</span>"; 

Woah, не так быстро! Вы должны вернуть действительный HTML, поэтому вы должны правильно избежать переменных; Существуют различные способы сделать это, но я предпочитаю использовать sprintf():

return sprintf('<span style="color: %s;">%s</span>', 
    htmlspecialchars($color, ENT_QUOTES, 'UTF-8'), 
    htmlspecialchars($message, ENT_QUOTES, 'UTF-8') 
); 

Смотрите также: htmlspecialchars()

Btw, встроенный CSS следует избегать; чаще всего классы являются предпочтительным подходом.

+0

Как насчет строк с urlencoded? UTF-8 символов? Или php-теги в строке? – 7stud

+0

@ 7stud Что о них? Вы говорите, что им нужно специальное лечение? –

Смежные вопросы