Меню

Първи стъпки в правене на сайтове

Влез Излез

Собствени функции в PHP

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

Функции в PHP се създават с помощта на ключовата дума function, изпише се името на функцията, в скоби се изредят аргументите, които функцията приема, а след това тялото на функцията се изписва във фигурни скоби.

Пример за функция, коята извежда текст с текущото време е:

function current_time() {
    echo date('H:i:s');
}

Името на функцията, която сме дефинирали е current_time.

В кръглите скоби след името не сме описали никакви аргументи, които биха могли да повлияят на крайния резултат.

Тялото на функцията вика „echo“, което ще изпише на екрана резултата от функцията, която сме изписали след това, а именно date.

За повече информация точно как работи функцията date можете да видите документацията й. За сега само накратко ще кажем, че аргументът, който й подаваме ще изпише текущия час на сървъра като: „ЧЧ:ММ:СС“, където „ЧЧ“ обозначава час (с водеща нула, ако е преди от 10), „ММ“ са минутите (отново с водеща нула), а „СС“ са секундите.

Функцията извикваме като изпишем името й (заедно с кръглите скоби и потенциални аргументи в тях):

<?php
function current_time() {
    echo date('H:i:s');
}

current_time();
?>

При мене това показва: „15:08:17“, което е часът, в който пиша този урок.

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


<?php
function current_time($show_date) {
    if ($show_date === false) { // ако не искаме да показваме дата
        $format = 'H:i:s'; // използваме същия формат като преди
    } else { // в противен случай
        $format = 'H:i:s, d.m.Y'; // освен ЧЧ:ММ:СС показваме и ДД.ММ.ГГГГ
    }
    
    echo date($format);
}

current_time(true);
?>

Сега вече резултатът при мене е „15:21:41, 07.02.2015“.

Ако извикаме current_time(false), резултатът ще е като от предния вариант на функцията.

Проблем идва обаче, когато решим да не подадем аргумент, а извикаме само current_time().

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

Warning: Missing argument 1 for current_time()

За да направим аргумента незадължителен трябва да му зададем стойност по подразбиране, която ще бъде използвана, ако той не е изрично зададен. Това става като просто изпишем знак за равенство след името на аргумента и стойността, която искаме да му зададем:

function current_time($show_date = false) {
    ...

Така викайки current_time() ние ще виждаме само часа, а ако изпишем current_time(true) тогава вече ще видим час и дата.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax