За последние 24 часа нас посетили 40910 программистов и 1813 роботов. Сейчас ищут 832 программиста ...

Как сделать?

Тема в разделе "Вопросы от блондинок", создана пользователем Фонк, 21 апр 2015.

  1. Фонк

    Фонк Новичок

    С нами с:
    21 апр 2015
    Сообщения:
    1
    Симпатии:
    0
    $a=100;
    $b=50;
    function ab($a,$b){
    $c=$a-$b;
    return $c
    }
    как мне значение $c запихнуть в функцию вместо $a, чтобы при следующем срабатывании функции выражение выглядело не 100-500, а 50-50?
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    читаем про static
     
  3. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. $a=100;
    3. $b=50;
    4. function ab($a,$b){
    5. $c=$a-$b;
    6. global $a;
    7. $a = $c;
    8. return $c;
    9. }
    10.  
    11. echo ab($a, $b); //50
    12. echo ab($a, $b); //0
    13. ?>
    Может, так?
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Catrina
    =)
     
  5. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Наверное. Но так тоже работает. =)
     
  6. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    есть код полностью рабочий а есть код который работает но который легко сломать (неожиданным образом работает). в случае с глобальной переменной любое использование переменной вне функции приводит к тому что сама функция уже работает вне требуемой логики. переменную придется импортировать в каждую область видимости где хочется с ней работать. статическая переменная же живет внутри функции и не меняется между вызовами. плюс функция доступна сама по себе в большинстве областей видимости и значит не нужно следить за доступностью переменной. поскольку автор не заявлял внешней модификации - более корректным решением будет именно статическая переменная функции.
     
  7. Catrina

    Catrina Новичок

    С нами с:
    24 апр 2015
    Сообщения:
    321
    Симпатии:
    0
    Кажется, понимаю. У функции появляется ненужная зависимость от глобального пространства. )
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Скажем так, это не работает, это прокатывает :) При определенных условиях.
     
  9. MyWeb

    MyWeb Новичок

    С нами с:
    26 май 2015
    Сообщения:
    28
    Симпатии:
    0
    учили же что глобал ни-ни...) апаснасте и все такое...)
     
  10. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Слушай, хорош уже сообщения набивать. Причём в большей своей части абсолютно бессмысленные и мёртвые. Это ничего не даст на этом форуме, кроме как воспринимания тебя как как клоуна и "карьериста".