Author Topic: Как изменить RND на несколько действий  (Read 5903 times)

0 Members and 4 Guests are viewing this topic.

tmp~1

  • Освоившийся
  • **
  • Posts: 31
    • View Profile
Re: Как изменить RND на несколько действий
« Reply #15 on: September 25, 2017, 01:43:23 PM »

Странно вот что. Если возвращать из ARRPOP() в переменную - $tmp = ARRPOP($arr), то код перестает работать как задумано. :(


дело тут совсем не в ARRPOP(). он всегда работал и работает как задумывалось.

тут дело в неправильном условии цикла for. ($i>ARRSIZE($arr)-($count+1)) - а никто не заметил, что количество элементов массива постоянно уменьшается? нужно ведь отталкивакться от первоначального значения количества элементов. в данном случае это $a. правильно - ($i>$a-($count+1))

Спасибо. :) Еще раз убеждаюсь что КМ не ошибается, а ошибается сам пользователь. Условие проверить я почему-то не посчитал нужным, несогласен был только с записью ARRPOP(). Вечером попробую всё это осмыслить..., сейчас нет времени.

tmp~1

  • Освоившийся
  • **
  • Posts: 31
    • View Profile
Re: Как изменить RND на несколько действий
« Reply #16 on: September 26, 2017, 06:46:41 AM »
Arrpop должна всегда возвращать значение в переменную, иначе не работает.
Джонни объяснял, что это нормально для функции, но я такого прикола не понял. Обычно функциям плевать куда мы возвращаем значения, хоть в переменную, хоть в поток вывода, хоть в никуда. Как это может влиять на извлечение переменной мне непонятно. Но запомнил и применяю так, как задумал автор.

Спасибо  :)