#php
#php
Вопрос:
Как мне запустить цикл for с 01
вместо 1
? Я пробовал следующее, но, похоже, это не работает.
for ($i = 01; $i <= 12; $i ) {
echo "<option value='$i'";
if ($i == $post_response[expiremm]) {
echo " selected='selected'";
}
$month_text = date("F", mktime(0, 0, 0, $i 1, 0, 0, 0));
echo ">$month_text</option>";
}
Ответ №1:
На самом деле вы не можете начинать целое число с 01, вам нужно будет дополнить значение, возможно, используя str_pad
для префикса начальных элементов к строке:
$value = $i;
if ($i < 10) {
$value = str_pad($i, 2, "0", STR_PAD_LEFT);
}
Обратите внимание, что для разных типов блоков вам, очевидно, потребуется изменить желаемое pad_length
.
Ответ №2:
01
это восьмеричное число 1
(которое в данном случае эквивалентно десятичному 1
). Поскольку вы хотите отформатировать выходные данные так, чтобы число состояло из двух цифр, рассмотрите возможность использования printf
:
printf("<option value='d'", $i);
%
отмечает начало преобразования0
означает «дополнить строку нулем»2
означает «замена должна иметь минимальную длину 2»d
означает «аргумент является целым числом»
Ссылки:
Ответ №3:
for ($i = 1; $i <= 25; $i ) {
echo str_pad($i, 2, "0", STR_PAD_LEFT);
echo "<br/>"; }
это может вам помочь..
Ответ №4:
PHP проанализирует 01 как целое число, поэтому оно станет 1. Вы не можете выполнить итерацию по строке, подобной ’01’, поэтому вам придется отредактировать значение $ i позже в вашем коде.
Если вам понадобится 01 позже, вы могли бы использовать дополнение. http://php.net/manual/en/function.str-pad.php
Ответ №5:
for ($ i = 01; $ i <= 12; $ i ) {
$value = strlen($i);
if($value==1){
$k = "0".$i;
}else
{
$k=$i;
}
echo "<option value='$k'";
if ($i == $post_response[expiremm]) {
echo " selected='selected'";
}
$month_text = date("F", mktime(0, 0, 0, $i 1, 0, 0, 0));
echo ">$month_text</option>";
}
Цикл For не может начинаться с 01, поэтому вы можете сделать так, как показано выше
Ответ №6:
$value = strlen($i);
if($value==1){
$k = "0".$i;
}else
{
$k=$i;
}
echo "<option value='$k'";
if ($i == $post_response[expiremm]) {
echo " selected='selected'";
}
$month_text = date("F", mktime(0, 0, 0, $i 1, 0, 0, 0));
echo ">$month_text</option>";
}
Ответ №7:
Не уверен, поможет ли это, если вы хотите начать отсчет не с 00 warp ($ value 1), а затем, когда он дойдет до 10, он не добавит 0 раньше
$count = 0;
$value = $count ;
echo str_pad(($value 1), 2, "0", STR_PAD_LEFT);