За последние 24 часа нас посетили 32987 программистов и 1756 роботов. Сейчас ищут 839 программистов ...

Не понимаю аргументы пользовательских функций

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

  1. alex455

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

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    Объясните как пользоваться аргументами в пользовательских функциях и зачем они вообще нужны?

    http://youtu.be/8peN5QYpjCM
    Вот создал автор $inumber1 и $inumber2, каким образом они стали $number1 и $number2???
    И главное - зачем это вообще нужно? Разве нельзя было указать переменные в начале PHP-кода, а потом просто написать в функции их сложение?
     
  2. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    ты бы хоть сказал, на какой минуте.
    или предлагаешь всю эту байду пересмотреть?

    а лучше всего прямо тут весь код опубликовть.
     
  3. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    engager, ты не понял. Он спрашивете зачем функциям параметры и почему бы не использовать вместо них глобальные переменные.
     
  4. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    да понял я ;)
    просто он в соседней теме спрашивает про что-то другое, приводя примеры с кодом, в котором есть аргументы, и там его это почему-то не смущает.
     
  5. alex455

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

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    Вот код, который написал Alex:

    PHP:
    1. <?php
    2.  
    3. $inumber1 = 10;
    4. $inumber2 = 5;
    5.  
    6. function add($number1, $number2) {
    7.   echo $number1 + $number2;
    8. }
    9.  
    10. add($inumber1, $inumber2);
    11.  
    12. ?>
    При выполнении кода это даёт 15. Почему? У нас есть переменные $inumber1 и $inumber2, которым заданы значения. Но складываются $number1 и $number2, которые не определены. Вот это не понимаю.
     
  6. dots_rei

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

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    $number1, $number2 - это имена переменных, под которыми функция будет обрабатывать пришедшие в нее данные.

    при вызове функции вы можете в нее передать хоть значения напрямую, типа
    add(10, 4);

    но в самой функции они по порядку преобразуются в
    10 становится $number1, 4 становится $number2

    в вашем же примере подстановка такая:
    $inumber1 становится $number1
    $inumber2 становится $number2
     
  7. alex455

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

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    А зачем нужна эта заморочка? Разве более простыми способами подобные вещи сделать нельзя?
     
  8. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Это и есть более простой способ. Все остальные сложнее.
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    alex455

    Может код надо попроще написать, чтобы понятнее было?

    PHP:
    1. <?php
    2.  
    3.  function add($number1, $number2) {
    4.    echo $number1 + $number2;
    5.  }
    6.  
    7.  add(5, 10);
    8.  add(1, 2);
    9.  add(10500, 11520);
    10.  
    11.  ?>
     
  10. alex455

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

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    tommyangelo, кажется, начинаю догонять... Спасибо.
     
  11. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    alex455

    А лучше вообще вот так написать

    PHP:
    1. <?php
    2.  
    3.   function add($number1, $number2) {
    4.    return $number1 + $number2;
    5.   }
    6.  
    7.   echo add(5, 10);
    8.   echo add(1, 2);
    9.   echo add(10500, 11520);
    10.  
    11.   ?>