Помогни ни да направим Uroci.net по - богат! Добави урок

PHP - част 6 (Функции)

PHP » PHP
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


Страници: «1 2 3

Сподели урока:



Регистрирайте се, за да добавите коментар


Калдейта Ком ЕООД - © 2003-. Всички права запазени.
Препоръчваме: IT Новини