If-оператор в переменной - PullRequest
1 голос
/ 15 февраля 2012

Я хочу напечатать имя одной и той же страницы по-разному в зависимости от определенной переменной.

Вот соответствующий код.

$metaTitle ="'if($variable=='input'){ title#1 }else {  title#2 };'";

И созданный мета-заголовок в последнее время используется в той же самойфайл для создания заголовка страницы (<title></title>)

Но он продолжает выдавать заголовок наподобие

if($variable=='input'){ title#1 }else {  title#2 };

(весь оператор if в целом. Он не распознает оператор if.Он считает это заявление простым текстом.)

Что я сделал не так в предложении ??

Ответы [ 4 ]

13 голосов
/ 15 февраля 2012

Использовать троичный оператор "?:":

$metaTitle = ($variable=='input')? "title#1" : "title#2";

Первая часть - это условие:

($variable=='input')

Вторая - результат, когда условие истинно:

"title#1"

Третий результат, когда условие ложно:

"title#2"

Источник http://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary

2 голосов
/ 15 февраля 2012

Потому что вы просто присваиваете $ metaTitle STRING "'if ($ variable ==' input ') {title # 1} else {title # 2};'", и это не выполнимый оператор

вы должны сделать так

if ($variable=='input') {
    $metaTitle = "title#1";
} else {
    $metaTitle = "title#2";
}

или просто используйте Ternary Operator

0 голосов
/ 15 февраля 2012

Попробуйте вместо этого -

if($variable=='input')
{ 
   $metaTitle = 'title#1'; 
}
else 
{ 
  $metaTitle = 'title#2'; 
}
0 голосов
/ 15 февраля 2012

Самое простое и простое решение - установить переменную title внутри оператора if.

if($variable=='input'){
  $metaTitle = 'title#1';
} else {
  $metaTitle = 'title#2';
}
...