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

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

PHP » PHP
fix3d   трудност:    видян: 10309



Функции без аргументи

Ето един пример за проста функция без аргументи

<?php

function no_arg // Деклариране на функцията с име no_arg
{
//Кодът на функцията
echo "Hello";
}
echo "The funtion has not been called yet";
no_arg(); // Извикване на функцията от главния скрипт
echo "The function has been called";

?>

В горния пример е декларирана функцията no_arg. Тъй като не са зададени аргументи след името на функцията, no_arg е функция без параметри. Когато функцията се извика чрез реда no_arg(), на екрана се появява съобщението "Hello". Резултатът от изпълнението е показан по-долу:
______________________________________
| |
|The funtion has not been called yet |
|Hello |
|The function has been called |
|____________________________________ |

Предаване на аргументи на функция

В PHP аргументите могат да се предават на функциите по следните три начина

Предаване на стойности по подразбиране
Предаване на аргументи по стойности
Предаване на аргументи по псевдоним

Предаване на стойности по подразбиране

При този метод, функцията трябва да приеме аргумент при извикването си. Ако обаче не се предаде стойност при извикването, на аргумента се присвоява такава по подразбиране. Ето пример за функция, имаща аргументи по подразбиране:

<?php

function counter ( $number = 6 ) // Деклариране на функцията counter
{
for(; $number < 10; $number++)
{
echo $number;
}
}
echo "The function has not been called yet.";
// Извикване на функцията със стойност 8 за аргумента на функцията
counter(8);
// Извикване на функцията без аргумент със стойност по подразбиране 6
counter();
echo "The function has been called yet !";

?>

В горния код функцията counter приема аргумент number, който има стойност по подразбиране 6. Когато функцията се извика и й се предава стойност (counter(8), стойността по подразбиране на аргумента не се взема предвид. От друга страна, когато функцията се извика без аргумент (counter()), тя взема стойността по подразбиране на аргумента и изпълнява тялото си.

Предаване на аргументи по стойност

Това е най-често използваният начин за предаване на стойности към функциите в PHP. При този метод стойността трябва да се предаде на функцията по време на извикването й от главната програма. Ето пример за функция, която приема аргументите си при извикване:
<?php

function counter( $number ) // Деклариране на функцията counter
// която изисква да бъде подадена стойност на аргумента number
{
for (; $number < 10; $number++)
{
echo $number ;
}
}
echo "The function has not been called yet.";
// Извикване на функцията и предаване на стойноста 3 на аргумента
counter(3);
echo "The function has been called.";

?>

В горния пример се декларира функция с име counter, която приема аргумент с име number. когато извикате тази функция, трябва да предадете стойност на аргумента на функцията. В противен случай PHP ще изведе съобщение за грешка. Когато функцията се извика от главния скрипт (counter(3)), й се предава стойност 3 за аргумента number.

Предаване на аргумент по псевдоним
<?

function called_function ( $number ) // Деклариране на функция, която
// изисква да бъде подадена стойност на аргумента number
{
$number = $number + 1;
echo $number;
}
// Извикване на функцията и предаване на num като аргумент
called_function ( $num );
echo $num;

?>

В този пример стойността на променливата num се предава на функцията called_function и се съхранява в локалната за called_function променлива с име number. Стойността, предадена на функцията, се увеличава с единица и се визуализира. След това контролът се връща на главният скрипт и се визуализира оригиналната стойност на променливата. Това означава, че въпреки променливата num да е била предадена на друга функция, нейната стойност остава непроменена в главният скрипт.

Понякога, например в скрипта за сложни изчисления, може да искате даден параметър да се предаде на функцията и в извикващият скрипт да се върне променената стойност. Както видяхте в горния пример, това не е възможно, ако предавате аргумента по стойност. Обаче, чрез предаването на аргумента по псевдоним можете да позволите на извикващата функция да позволи стойността на предадения й аргумент. Аргументите се предават по псевдоним, като се появи знакът & преди аргумента. Разгледайте следващия пример. Той е почти същия като горния. Тук, обаче, аргументът се предава по псевдоним, вместо по стойност.
<?

$num = 10;
function called_function ( $number ) // Деклариране на функция, която
// изисква да бъде подадена стойност на аргумента number
{
$number = $number + 1;
echo $number;
}

called_function ( &$num ); // Извикване на функцията и предаване на num
echo $num;

?>

В горния пример аргументът num се предава по псевдоним. Т.е вместо копие, на функцията се предава адресът в паметта на аргумента. Като резултат, променливата num бива променена от функцията called_function.


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

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



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


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