Использование двойных значений вместо единственного числа

#php

#php

Вопрос:

В приведенном ниже коде, как я могу заставить его использовать 01 etc вместо 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>';
}
  

Комментарии:

1. str_pad($_GET['page'], 2, "0", STR_PAD_LEFT) Вопрос в том, почему?

2. @JaredFarrish Спасибо, я действительно сталкивался с тем, что не был уверен в форматировании — установил бы я это как var?

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

Ответ №1:

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('d', $next) ?>">Next</a></li>
<li><a href="branding-<?= sprintf('d', $prev) ?>">Prev</a></li>
  

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