2016-10-18 3 views
0

В приведенном ниже коде, как я могу использовать его 01 и т.д. вместо 1? а также, как я могу сделать так, что предыдущая ссылка показывает 01 как предел страницы вместо 0Использование двойных значений вместо особых

Код:

<?php 
if(isset($_GET['page']) >=99){ 
exit('ran out of pages'); 
//no idea what you want here :-) 
} 

if(empty($_GET['page']) OR !is_int($_GET['page'])){ 
$_GET['page']=01; 


$next=$_GET['page']+01; 
$prev=$_GET['page']-1; 
echo '<li><a href="branding-' .$next. '">Next</a></li>'; 
echo '<li><a href="branding-' .$prev. '">Prev</a></li>'; 
} 
+0

['str_pad ($ _ GET ['page'], 2," 0 ", STR_PAD_LEFT)'] (http://codepad.org/rJQyY5Ow) Вопрос в том, почему? –

+0

@JaredFarrish Спасибо, я натолкнулся, что не был уверен в форматировании - я бы установил это как var? –

+0

Мне любопытно, зачем вам это нужно. Переменные отображаются только в атрибутах HTML, поэтому они даже не отображаются пользователем – Phil

ответ

0

sprintf идеально подходит для этой

// read current page, defaulting to 1 
$page = isset($_GET['page']) ? max((int) $_GET['page'], 1) : 1; 

$next = $page + 1; 
$prev = max($page - 1, 1); // don't go below 1 
// ending the PHP context here. Echo-ing strings of HTML is cumbersome 
?> 
<li><a href="branding-<?= sprintf('%02d', $next) ?>">Next</a></li> 
<li><a href="branding-<?= sprintf('%02d', $prev) ?>">Prev</a></li> 

Кроме того, не присваивайте числа с начальным нулем. PHP попытается прочитать их как восьмеричные числа.