1. Аргументи на функция
В кръглите скоби, които задължително се поставят след всяка функция, може да има един или повече параметъра (наричат се още аргументи на функция). Аргументите на функциите представляват променливи, които съдържат някаква стойност. Стойностите им могат да бъдат както цифрени, така и буквени. Когато са повече от една, тези променливи се отделят чрез запетаи.

Предварително дефинираните (вградените в езика) функции може да имат някои задължителни параметри. Например функцията mail(), чрез която могат да се изпращат съобщения на имейл, трябва задължително да има в кръглите скоби променливи, които съдържат имейл адреса, до който ще се праща съобщението, темата на съобщението, съдържанието на самото съобщение и в допълнителните хедъри – имейл адреса на подателя на съобщението.

Когато програмиста създава собствена функция от него зависи дали ще й зададе някакви аргументи или не.

След като са зададени някакви аргументи в кръглите скоби на функцията те може да се използват в изпълнимия код, който се поставя в големите скоби – {}. В този код може да се зададат някакви ефекти на аргументите или извършване на някакви действия с тях.

Когато на дадена функция се задават някакви променливи във вид на аргументи, на тях още при дефинирането на функцията може да им се зададат някакви стойности, а може да им се зададе стойност и по-късно, при извикването на функцията.

Ако на даден аргумент (променлива) на функция се зададе някаква стойност при дефинирането на функцията, тогава се казва, че това е стойността на аргумента по подразбиране. Ако при извикването на функцията не бъде зададена някаква друга стойност на аргумента, се използва стойността по подразбиране. Ако обаче при извикването на фукцията се укаже друга стойност на аргумента, тогава стойността по подразбиране се пренебрегва автоматично и се работи с новата стойност.

Да направим функция podpis() и да й зададем аргументите $ime и $familia. Ще присвоим на аргумента (променливата) $ime стойността „Иван“ и на аргумента (променливата) $familia ще присвоим стойността „Иванов“. След това в големите скоби ще укажем при извикване на функцията името и фамилията да се извеждат на екран, като на името ще зададем ефекта „удебелен текст“, а на фамилията – „удебелен и наклонен текст“:

<?php

function podpis($ime = „Иван“, $familia = „Иванов“)

{
echo „<b>$ime <i>$familia</i></b>“;
}

?>

В този случай се казва, че аргумента $ime има стойност по подразбиране „Иван“ и аргумента $familia има стойност по подразбиране „Иванов“.

Сега да извикаме функцията чрез кода


<?php

podpis(Иван, Иванов);

?>

или чрез кода


<?php

podpis();

?>

Ако изрично не укажем някакви други стойности, както е в случая, ще получим следния резултат:

Иван Иванов

Ако напишем кода:

<?php

podpis(Иван);

?>

ще получим абсолютно същия резултат, т.е. отново Иван Иванов. В този случай не сме извикали втория аргумент, но по подразбиране е указано той да има стойност „Иванов“ със съответния текстов ефект, затова при извикване на функцията дори ако напишем само първия аргумент (в случая това е аргумента със стойност малкото име „Иван“), все пак като резултат ще получим показването и на името и на фамилията.

Ако обаче напишем

<?php

podpis(Петър);

?>

като резултат ще получим на екрана думите Петър Иванов. Това е така, защото стойността „Петър“ е заместила стойността по подразбиране „Иван“. Както беше обяснено, стойностите на аргументите по подразбиране се ползват само ако при извикването на функцията изрично не бъде зададена друга стойност на аргумента. В случая е зададена друга стойност – името Петър. Стойността на аргумента $familia си остава „Иванов“, както е зададена по подразбиране, тъй като за този аргумент не е указана друга стойност.

Можем да декларираме същата функция и по следния начин:

<?php

function podpis($ime, $familia)

{
echo „<b>$ime <i>$familia</i></b>“;
}

?>

Т.е. в този случай не сме задали на аргументите стойности по подразбиране. Тогава каквито и две имена да напишем при извикване на функцията, например

<?php
podpis(Петър, Петров);
?>

или

<?php
podpis(Иван, Стоянов);
?>

и т.н. ще получим като резултат извеждане на имената на екран, като първото име ще е с удебелен шрифт, а второто  – с удебелен и наклонен. Необходимо е както при декларирането на функцията, така и при извикване на функцията да укажете и двата аргумента, отделени със запетаи, в противен случай PHP ще ви изведе съобщение за грешка.

2. Конструкция return
Конструкцията return се използва във функции, като предназначението й е да върне във вид на стойност резултата от действието, зададено на функцията в големите скоби. Например кодa

<?php

function suma($prom1, $prom2)
{
return $prom1 + $prom2;
}

echo suma(100, 50);

?>

или някакъв по-сложен вариант, например:

<?php

function suma($prom1, $prom2)
{
$prom3 = $prom1 + $prom2;
return $prom3;
}
$prom4 = suma(100, 50);
echo $prom4;
?>

ще ни дадат като краен резултат извеждане на екран на числото 150, тъй като сме задали като действие да се изпълни сбор от двата аргумента на функцията, а след това при извикване на функцията е зададено аргументите да имат стойности съответно 100 и 50. Ако от първия пример премахнем ключовата дума return или от втория пример премахнем реда return $prom3; няма да получим резултат.