2010-09-05 8 views
0

У меня есть рабочий сценарий разбиения на страницы, он отображает данные с небольшим количеством проблем.Проблема с ifelse в скрипте PHP

Однако проблема, с которой я столкнулась, заключается в том, чтобы заставить мои данные заключать ее в кавычки, если она не является нулевой.

Это часть моего постраничной сценария:

//This function shows the data 
public function display() 
{ 
    if(date('Y-m-d') == date('Y-m-d', $this->airdate)) $dateFormat = 'g:ia'; 
    elseif(date('Y') == date('Y', $this->airdate)) $dateFormat = 'F jS - g:ia'; 
    else $dateFormat = 'F jS, Y - g:ia'; 

    echo '<tr>'."\n". 
     ' <td><strong>'.$this->program.'</strong></td>'."\n". 
     ' <td>showing on '.$this->channel.'</td>'."\n". 
     ' <td>'.date($dateFormat, $this->airdate).'</td>'."\n". 
     ' <td><b>'.$this->episode.'</b></td>'. "\n". 
     ' <td>'.$this->setReminder.'</td>'."\n". 
     '</tr>'."\n"; 
} 

Однако, это $ this-> эпизод. часть, с которой у меня возникают проблемы.

Данные делает правильно:

Episode Name 
<null> 
Episode Name 2 

, но я хотел бы, чтобы это было так:

"Episode Name" 
<null> 
"Episode Name 2" 

Я пробовал:

 echo '<tr>'."\n". 
     ' <td><strong>'.$this->program.'</strong></td>'."\n". 
     ' <td>showing on '.$this->channel.'</td>'."\n". 
     ' <td>'.date($dateFormat, $this->airdate).'</td>'."\n". 
     ' <td><b>"'.$this->episode.'"</b></td>'. "\n". 
     ' <td>'.$this->setReminder.'</td>'."\n". 
     '</tr>'."\n"; 
} 

но форматирование вышло как:

"Episode Name" 
"<null>" 
"Episode Name 2" 

, который не был таким, каким я ожидал его явки.

Я не уверен, какое правильное решение - это ifelse лучший, и если да, то какой код вы порекомендовали бы для этой проблемы?

ответ

1

Вы можете передать значение через функцию, которая при необходимости добавит кавычки.

function encloseNullWithQuotes($a) 
{ 
    if ($a == "<null>") 
     return $a; 
    return '"'.$a.'"'; 
} 

Затем измените $this->episode в вашем коде encloseNullWithQuotes($this->episode).

Не совсем уверен, является ли эпизод литеральной строкой <null> или нет ... если это не так, вы можете сделать тест для NULL или что-то в этом роде в функции.

+0

представляет собой пустое пространство на экране, надеюсь, что проясняет его для вас. – whitstone86

+0

Это сработало, спасибо! – whitstone86

+0

Отлично. Я был бы признателен, если бы вы могли отметить ответ как принято :) –

0

перед эхом сделать

$this->episode = ($this->episode == '<null>')? $this->episode : '"' . $this->episode . '"'; 

, а затем в эхе сделать

' <td><b>'.$this->episode.'</b></td>'. "\n". 
Смежные вопросы