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