За последние 24 часа нас посетили 55628 программистов и 1801 робот. Сейчас ищут 947 программистов ...

Помогите с областью видимости

Тема в разделе "PHP для новичков", создана пользователем seifer, 7 июл 2017.

  1. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    Есть 2 файла

    1)function.php
    Код (Text):
    1.  
    2. func...(){
    3. .....
    4. while($row = mysql_fetch_assoc($res)){
    5.     $keys = array_keys($row, "1");  
    6.     $keys_w = array_keys($row, "0");  
    7.     $r = rand(1, 5);  
    8.     $r_value = array_random_assoc($keys, $r);
    9.     $w_value = array_random_assoc($keys_w, 12-$r);
    10.     $result = array_merge($r_value, $w_value);
    11. ...}
    2) Получаем post от формы и обрабатываем (вопрос - как передать массив $r_value и $w_value в функцию?)
    Код (Text):
    1.  
    2. include 'function.php';
    3.  
    4. $a = file_get_contents('php://input');
    5.  
    6. $arr = explode("&", $a);
    7. $list_answer = array_diff($arr, array('', NULL, false));
    8.  
    9. if(isset($list_answer)){
    10. get_answer(); }
    11. function get_answer(){
    12. $result_r = array_intersect($list_answer, $r_value);      
    13.      
    14.         $r = count($r_value);    
    15.         $r_w = count($result_r);  
    16.         $percent_r = ($r_w/$r)*100;  
    17.      
    18.      
    19.         $result_w = array_intersect($w_value, $list_answer);      
    20.      
    21.         $r_wr = count($w_value);
    22.         $r_r = count($result_w);
    23.         $percent_w = ($r_r/$r_wr)*100;
    24.      
    25.         $exit = $percent_r - $percent_w;
    26.    echo $exit;
    27. }
     
    #1 seifer, 7 июл 2017
    Последнее редактирование: 7 июл 2017
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Через параметры, естественно
     
  3. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    function get_answer( $r_value, $w_value) ? Я нуб в php
    Мне как кажется, надо из 1й функции как-то вывести массив в глобал и потом его передавать?
     
    #3 seifer, 7 июл 2017
    Последнее редактирование: 7 июл 2017
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    Не надо через глобальные.. лучше через параметры.. Потом когда кто то будет читать ваш код не будет знать где что в глобальную переменную попадает.
     
  5. seifer

    seifer Новичок

    С нами с:
    27 май 2017
    Сообщения:
    76
    Симпатии:
    2
    Как тогда выдернуть массив-то из первой функции? Она же отрабатывает и все стирается из памяти.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Эх, банить бы сразу за эту фразу...

    Что, не прочесть книжку? Что, в мануале забанили? Чтоб передать в функцию что-то, существуют параметры. Чтоб вернуть из функции что-то, существуют возвращаемые значения, и оператор return ...;
    --- Добавлено ---
    https://php.ru/manual/language.functions.html
     
    MouseZver нравится это.
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    давно пора выкинуть функции и юзать статичное ООП по таким вопросам