Page 48 - 4636
P. 48

create_table2($my_array, 3);
           цілком припустимо: він призводить до того, що значення змінної $border встановлюється рівним
        3,  а  значень  змінних  $cellpadding  і  $cellspacing  отримують  відповідні  значення  за
        замовчуванням.
           Існує  можливість  оголошувати  функції,  які  приймають  змінну  кількість  параметрів.  Визначити,
        скільки  передано  параметрів,  а  також  їх  значення,  можна  за  допомогою  допоміжних  функцій
        func_num_args(), func_get_arg() і func_get_args().
           Для прикладу розглянемо наступну функцію:
           function var_args() {
           echo "Кількість параметрів:’’ echofunc_num_args();
           echo "<br />";
           $args = funcgetargsO ;
           foreach ($args as $arg)
           echo $arg."<br />";
           }
           Область дії
           Ви,  мабуть,  уже  звернули  увагу  на  те,  що  за  необхідності  використання  змінних  всередині
        включачого  файлу  ми  просто  оголошуємо  їх  у  сценарії  перед  оператором  require()  або
        include(). Однак при використанні функції ці змінні передаються у неї явно. Частково це пов'язано
        з тим, що не існує ніякого механізму для явної передачі змінних у викликаний або включається файл, а
        частково з тим, що область дії змінних у функції визначається інакше.
           Область дії змінних задає межі, в рамках яких змінна видима і може використовуватися. У різних
        мовах програмування є різні правила, що встановлюють область дії змінних. У РНР діють дуже прості
        правила:
             змінні, які оголошені всередині функції, діють в області від оператора, в якому вони оголошені,
        до закриваючої  дужки в кінці функції. Ця область називається областю дії функції), а самі змінні  -
        локальними (local) змінними
             змінні,  які  оголошені  за  межами  функції;  діють  в  області  від  оператора,  в  якому  вони
        оголошені, до кінця файлу, але не всередині функцій. Ця область називається глобальної областю дії, а
        такі змінні - глобальними (global) змінними
             спеціальні суперглобальні змінні видно як усередині функції, так і за її межами;
             використання операторів require() і include() не впливає на область дії змінних. Якщо
        оператор  використовують  всередині  функції,  його  областю  дії  є  область  дії  функції.  Якщо  його
        використовують за межами функції, його областю дії є глобальна область;
             ключове  слово  global  може  використовуватися  для  вказівки  вручну,  тому  змінна,  яку
        визначено або використовують всередині функції, повинна мати глобальну область дії;
             змінні можуть бути видалені вручну за допомогою виклику функції unset ($ім'я_змінної).
        Якщо змінна вилучена, вона пропадає з своєї області.
           Наведені далі приклади допоможуть внести ясність у дані визначення.
           Наступний код не генерує ніякого висновку. У ньому змінна $var оголошується всередині функції
        fn(). Оскільки ця змінна оголошується всередині функції, вона має область дії в рамках функції і
        існує в області від місця її оголошення до кінця функції. При зверненні до змінної $var за межами
        функції,  створюється  нова  змінна  з  ім'ям  $var.  Ця  нова  змінна  має  глобальну  область  дії  і  буде
        видимою  до  кінця  файлу.  На  жаль,  якщо  єдиним  оператором,  який  застосовують  щодо  цієї  нової
        змінної є $var, echo, вона ніколи не буде мати значення.
           function fn() {
           $var = ''значення";
           }
           fn();
           echo $var;

                                                            45
   43   44   45   46   47   48   49   50   51   52   53