Задача 5. Вывести цифры числа в обратном порядке
Primary tabs
Задача №5 из списка задач по PHP
Вывести цифры числа в обратном порядке.
<?php
$nl = "<br/>";
$num = (string)12345;
$len = strlen($num);
while (--$len >= 0)
echo $num{$len}.$nl;
- Log in to post comments
- 15930 reads
math2
Fri, 01/12/2018 - 11:14
Permalink
Выполняется, но с замечаниями
Выполняется, но с замечаниями.
1 2 3 4 5 PHP Notice: Uninitialized string offset: 5 in /home/math2/php_tasks/script.php on line 7 PHP Stack trace: PHP 1. {main}() /home/math2/php_tasks/script.php:0 Notice: Uninitialized string offset: 5 in /home/math2/php_tasks/script.php on line 7 Call Stack: 0.0002 360408 1. {main}() /home/math2/php_tasks/script.php:0 PHP Notice: Uninitialized string offset: 6 in /home/math2/php_tasks/script.php on line 7 PHP Stack trace: PHP 1. {main}() /home/math2/php_tasks/script.php:0 Notice: Uninitialized string offset: 6 in /home/math2/php_tasks/script.php on line 7 Call Stack: 0.0002 360408 1. {main}() /home/math2/php_tasks/script.php:0Лучше говорить "цифры числа".
И это не обратный порядок.
moberaptor
Sat, 01/13/2018 - 03:17
Permalink
1.Выполняется, но с
1.
Какая IDE?
2. Да, только так и правильно, если, конечно, речь не о поличислах.
3.
Спасибо, пофиксил...
math2
Sun, 01/14/2018 - 00:08
Permalink
Какая IDE? Просто консоль.
Просто консоль.
moberaptor
Sun, 01/14/2018 - 22:25
Permalink
Спасибо!
Спасибо!
vedro-compota
Fri, 01/12/2018 - 13:46
Permalink
Просьба для начала
Просьба для начала переоформить все задачи в соответствии с: http://fkn.ktu10.com/?q=node/9517 а именно
_____________
матфак вгу и остальная классика =)
moberaptor
Sat, 01/13/2018 - 18:05
Permalink
5) не надо писать while для
Что имеется ввиду? Предполагаю, что когда идёт последовательный перебор значений, то нагляднее оформлять цикл с помощью for, а безопаснее с for in, но всё таки просьба пояснить.
math2
Sun, 01/14/2018 - 00:06
Permalink
<?php
<?php $num = (string)12345; $len = strlen($num); while ($len-- >= 0) echo $num{$len}.$nl;Не определена одна переменная:
Допишем немного в этот скрипт, чтобы видеть индекс в выводе:
<?php $nl = "<br>"; $num = (string)12345; $len = strlen($num); while ($len-- >= 0) echo "$len: ". $num{$len}.$nl;Вывод этого скрипта:
Выводится на одну цифру больше, чем требуется.
Такой вывод будет, если использовать php7.2.
В php7.0 мы получили бы
Почему здесь лучше использовать цикл for?
В цикле for все действия можно указать явно.
И здесь, например, это было бы легче сразу написать и прочитать.
<?php $nl = "<br>"; $num = (string)12345; $len = strlen($num); for ( $i = $len-1 ; $i >= 0 ; $i-- ) { echo "$i: ". $num[$i].$nl; }Вывод этого скрипта:
moberaptor
Sun, 01/14/2018 - 22:22
Permalink
Спасибо за ответ! Чтобы
Спасибо за ответ! Чтобы корректно заработал исходник с while нужно заменить $i--, на --$i), тогда всё становится на свои места.
То есть правильно ли, я понял, что цикл for считается более наглядным?
math2
Mon, 01/15/2018 - 00:44
Permalink
Или же заменить 0 на 1?
Или же заменить 0 на 1?
while ($len-- >= 1) echo "$len: ". $num{$len}.$nl;Или убрать знак равенства?
while ($len-- > 0) echo "$len: ". $num{$len}.$nl;Нет, конечно же.
Просто его можно использовать для цикла с параметром.
vedro-compota
Mon, 01/15/2018 - 12:39
Permalink
То есть правильно ли, я понял
Да, более наглядный, но именно для цикла с параметром.
_____________
матфак вгу и остальная классика =)