Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Рандомный выбор действия программы.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
jaxmackey
Отправлено: 22 Декабря, 2015 - 20:37:22
Post Id



Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




Здраствуйте вот код
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function a (){
  3.  
  4. echo 1;
  5. }
  6.  
  7. function b (){
  8.  
  9. echo 2;
  10. }
  11. while(true){
  12. if(rand(1, 2)){
  13. $a= a();
  14. $b= b();
  15. }
  16. }
  17. ?>


Я хочу чтобы когда в операторе if, rand определял переменную. В зависимости от выбора переменной включалась функция которая выполняет определенный участок кода.
Что я не так делаю почему не получается?
 
 Top
Строитель
Отправлено: 22 Декабря, 2015 - 21:34:11
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




jaxmackey пишет:
Здраствуйте вот код
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function a () {
  3.     echo 1;
  4. }
  5.  
  6. function b () {
  7.     echo 2;
  8. }
  9. while (true) {
  10. if(rand(1, 2)){
  11. $a= a();
  12. $b= b();
  13. }
  14. }
  15. ?>


Я хочу чтобы когда в операторе if, rand определял переменную. В зависимости от выбора переменной включалась функция которая выполняет определенный участок кода.
Что я не так делаю почему не получается?

Всё вы делаете не так. Не корректно пишете функции (echo вместо return), используете цикл, который тут вообще не нужен, проверяете булев тип вместо присваивания значения в переменную. Я переписал код под вашу задачу
PHP:
скопировать код в буфер обмена
  1.  
  2. function a() {
  3.     return 1;
  4. }
  5.      
  6. function b() {
  7.     return 2;
  8. }
  9.  
  10. $arr = array(a(), b());
  11. echo $arr[mt_rand(0, 1)];
  12.  

ещё сократил на одну строку ))

(Отредактировано автором: 22 Декабря, 2015 - 21:40:58)

 
 Top
IllusionMH
Отправлено: 22 Декабря, 2015 - 23:10:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $m = [
  3.   function () {
  4.         echo 1;
  5.   },
  6.   function () {
  7.         echo 2;
  8.   }];
  9. $m[rand(0,count($m)-1)]();

JS style Ха-ха
 
 Top
dcc0
Отправлено: 22 Декабря, 2015 - 23:32:23
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1. function a() {
  2.     return 1;
  3. }
  4.      
  5. function b() {
  6.     return 2;
  7. }
  8.  
  9. if(rand(1,2)==1) {
  10. a();
  11. } elseif (rand(1,2)==2) {
  12. b();
  13. }


-----
Март 2021. Бросил программирование
 
 Top
Строитель
Отправлено: 22 Декабря, 2015 - 23:53:37
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Мой вариант наиболее компактный Радость
 
 Top
Sail
Отправлено: 23 Декабря, 2015 - 09:01:44
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




dcc0, ага... А если в первом if rand вернёт 2, а во втором 1? Подмигивание
 
 Top
Мелкий Супермодератор
Отправлено: 23 Декабря, 2015 - 10:05:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




а ещё есть array_rand


-----
PostgreSQL DBA
 
 Top
dcc0
Отправлено: 23 Декабря, 2015 - 11:57:08
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Sail пишет:
function a() {    return 1;}     function b() {    return 2;} if(rand(1,2)==1) {a();} elseif (rand(1,2)==2) {b(); }


На, да, это я не "догнул", ну если только два варианта, то
PHP:
скопировать код в буфер обмена
  1.  
  2. if(rand(1,2)==1) {
  3.  
  4. a();
  5.  
  6. }
  7. else  {
  8.  
  9. b();
  10.  

(Отредактировано автором: 23 Декабря, 2015 - 11:57:35)



-----
Март 2021. Бросил программирование
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB