Проблема с ifelse в PHP-скрипте - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть работающий скрипт разбивки на страницы, он отображает данные с несколькими проблемами.

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

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

//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"

что не так, как я ожидал, явка явится.

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

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

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

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

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

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

0 голосов
/ 06 сентября 2010

до эха сделать

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

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

'  <td><b>'.$this->episode.'</b></td>'. "\n".
...