If else: альтернативный синтаксис
Товарищи!
Помогите пожалуйста перевести из альтернативного синтаксиса в нормальный вот это:
public function pages() : string
{
if($this->pagesTotal > 1) {
for($pr = '', $i = 1; $i <= $this->pagesTotal; $i++) {
echo $pr = (($i == 1 || $i == $this->pagesTotal || abs($i - $this->page) < 2) ? ($i == $this->page ? ' [' . $i . ']' : ' <a href="' . $i . '">' . $i . '</a>') : (($pr == ' ...' || $pr == '') ? '' : ' ...'));
}
}
}
Чтобы и вместо $pr = '' было $html .=, как здесь:
public function pages() : string
{
if ($this->pagesTotal > 1) {
$html = '';
for ($i = 1; $i <= $this->pagesTotal; $i++) {
if ($this->page > 1 && $i == $this->page - 1) {
$html .= '<li><a href="' . $this->url . '/' . $i . '"></a>...</li>';
continue;
}
if ($i > $this->page + 1) {
$html .= '<li><a href="' . $i . '"></a>...<li>';
break;
}
if ($i == $this->page) {
$html .= ' <li class="current">' . $i . '</li>';
} else {
$html .= '<li><a href="' . $this->url . '/' . $i . '">' . $i . '</a></li>';
}
}
return $html;
}
}
Ответы (1 шт):
Автор решения: BigTows
→ Ссылка
Как-то так:
public function pages(): string
{
$result = '';
$pages = $this->pagesTotal;
$page = $this->page;
if ($pages > 1) {
for ($pr = '', $i = 1; $i <= $pages; $i++) {
$result .= $pr = (($i == 1 || $i == $pages || abs($i - $page) < 2) ? ($i == $page ? ' [' . $i . ']' : ' <a href="?page=' . $i . '" title="Страница ' . $i . '">' . $i . '</a>') : (($pr == ' ...' || $pr == '') ? '' : ' ...'));
}
}
return $result;
}