PHP - част 6 (Функции)
fix3d трудност:

видян:
10307
Връщане на стойност от
функция
Функциите също могат да връщат стойности към извикващият ги
скрипт. В PHP, както и в повечето програмни езици( например С++ ), операторът
return се използва за връщане на стойността на променлива в извикващият скрипт.
Разгледайте следващият пример:
<?php
function sum ( $num1, $num2) // Деклариране на функция с
име sum
{
$result = $num1 + $num2;
return $result;
}
echo sum
(233, 19);
?> |
В горният код се
декларира функция с име sum. Тази функция, която може да се предположи от името
й, изчислява сумата на двата си аргумента. Променливата result във функцията се
използва за съхраняване на тази сума. С помощта на оператора return резултатът
от изчислението се връща в извикващият скрипт и се визуализира на
екрана.
Област на действие на променлива във
функция
Вероятно до сега сте се сблъсквали с термина област на
действие. Ако този термин не ви е познат, сега ще ви го обясня. Терминът област
на действие описва достъпността на променлива във функция. С други думи, частите
от скрипта, които са извън функцията, нямат достъп до променливите, декларирани
във функцията.
Да разгледаме следващият пример
<?php
function sum() // Деклариране на функцията
sum
{
$result = 117 + 28;
}
echo
$result;
?> |
В горния пример
няма нищо да се изведе на екрана! Можете ли да се досетите защо? Променливата
result е декларирана във функцията sum. По тази причина, областта й на действие
е ограничена само до тялото на функцията. По-просто казано, тя може да се
използва само във функцията и остава недостъпна в частите от скрипта извън нея.
Когато променливата result се използва извън функцията, тя се разглежда като
нова променлива, чиято стойност още не е била зададена.
Въпреки че
областта на действие на променлива ограничава достъпността й извън конкретната
функция, вие можете да осъществите достъп до променлива, дефинирана във
функцията. За тази цел PHP предоставя две ключови думи - global и
static.
Ключовата дума global
Ключовата дума global ви
позволява да осъществите достъп до променлива, декларирана във функция, от всяко
място във скрипта ви. За тази цел при декларирането на променливата трябва да
използвате ключовата дума global по следния начин:
global
$променлива_1;
Ето как трябва да се промени предишния пример, за да бъде
променливата result достъпна в главния скрипт.
<?php
function sum() // Деклариране на функцията
sum
{
global $result;
$result = 117 + 28;
}
$result = 0;
echo
$result;
?> |
В горния пример,
изведеният текст няма да бъде празен. И двата оператора echo ще изведат на
екрана стойност 0, защото сега променливата result е глобална променлива и е
достъпна от всяко място в скрипта.
Ключовата дума static "увеличава
живота" на променливите и се различава от ключовата дума
global
Ключовата дума static
Животът на променливата,
декларирана във функцията, е много кратък. Това означава, че променливата във
функцията се инициализира във началото на функцията и се унищожава при излизане
от нея. Чрез използването на ключовата дума static можете да увеличавате живота
на променливите, декларирани във функциите.
Да разгледаме следния пример:
<?php
function sum() // Деклариране на функцията
sum()
{
$result = 1;
echo
$result;
$result++;
}
sum();
sum();
?> |
В
горния пример функцията sum се извиква два пъти от главния скрипт. Резултатът е
1, 1.
Защо става така? Това е така, защото всеки път, когато извикате
функцията, променливата result се инициализира отново, и резултатът от
предишните събирания се губи. Но ако искате сумата да се натрупва, тогава можете
да направите малка промяна в горния код, за да получите желания ефект. Преди
декларацията на променливата result поставете ключовата дума static. Да
разгледаме следния пример.
<?php
function sum() // Деклариране на функцията
sum()
{
static $result = 1;
echo
$result;
$result++;
}
sum();
sum();
?> |
При
изпълнението си горната програма ще изведе първо 1, след което на следващия ред
2, Това е така, защото променливата е декларирана като статична променлива и тя
помни стойността си и след края на функцията.
Променливи функции и
функции с променлив брой аргументи
Променливите функции са едни от
най-добрите възможности на PHP. Ако добавите апострофи към името на
променливата, PHP се опитва да намери функция със същото име и да я изпълни.
Нека да разгледаме следния пример:
<?php
function pesho()
{
echo "My name is
Pesho";
}
function noname ($name) // Функция изискваща
аргумент
{
echo "My name is $name";
}
$show = 'pesho';
$show();
// Това е еквивалентно на реда pesho();
$show = 'noname';
$show(Dylgia);
// Това е еквивалентно на реда
noname('Dylgia')
?> |
В горния
пример има две функции pesho и noname. Функцията noname приема като параметър
стойността Dylgia при извикването си от главния скрипт. В главния скрипт е
декларирана променливата show. Както можете да видите, имената на функциите са
присвоени, като стойност на тази променлива. Поради тази причина променливата
show се нарича променлива функция.
PHP също така поддържа функции с
променлив брой аргументи. Функцията с променлив брой аргументи е функция, при
която броят на аргументите не е фиксиран.
Например:
<?php
showtitles($Itemcode 1);
showtitles($Itemcode 1,
$Itemcode 2);
showtitles($Itemcode 1, $Itemcode 2, $Itemcode
3);
?> |
PHP предоставя три функции
за поддръжка на функциите с променлив брой
аргументи:
func_num_args(): Връща броя на аргументите предадени на
функцията.
func_get_arg(): Връща стойността на конкретния аргумент.
Например, за да получите стойността на първия аргумент, предаден на
функцията, можете да напишете $arg1 =
func_get_arg(0).
func_get_args(): Връща всички аргументи , предадени
на функцията под формата на масив.
източник на урока:
http://www4u.search.bg