Notice: Undefined variable: this in /home/dimarini/public_html/libraries/src/Application/CMSApplication.php on line 441

Функции в PHP


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

Създаване на PHP функция

Кодът в функцията се изпълнява при нейното повикване. Синтаксис:

    function functionName()
{
код, който трябва да се изпълни;
}

За предпочитане е да се дава име на функцията, което съответства на действието и. Името на функцията може да започва с буква или символа за подчертаване, в никакъв случай с цифра. В долният пример е показана функция, която изписва име при повикването и:

    <html>
<body>

<?php
function winnerName()
{
echo "Иван Иванов";
}

echo "Наградата печели: ";
winnerName();
?>

</body>
</html>

Като резултат от изпълнението на кода в функцията се появява надпис:

    Наградата печели: Иван Иванов 

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

    <html>
<body>

<?php
function firstName($fname)
{
echo $fname . " Иванов.<br />";
}

echo "Аз се казвам: ";
firstName("Иван");
echo "Името на баща ми е: ";
firstName("Стоян");
echo "Името на брат ми е: ";
firstName("Петър");
?>

</body>
</html>

Като резултат от изпълнението на кода в функцията се появява надпис:

    Аз се казвам: Иван Иванов.
Името на баща ми е: Стоян Иванов.
Името на брат ми е: Петър Иванов.

В следващият пример са използвани два параметъра:

    <html>
<body>

<?php
function fullName($name,$family)
{
echo $name . $family . "<br />";
}

echo "Победител: ";
fullName("Иван","Иванов");
echo "Второ място: ";
fullName("Петър","Петров");
echo "Трето място: ";
fullName("Стоян","Стоянов");
?>

</body>
</html>

Като резултат от изпълнението на кода в функцията се появява надпис:

    Победител: ИванИванов
Второ място: ПетърПетров
Трето място: СтоянСтоянов

Връщане на стойност от PHP функция Връщането на стойност от функция става чрез определението return. Пример:

    <html>
<body>

<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}

echo "100 + 160 = " . add(100,160);
?>

</body>
</html>

Като резултат от изпълнението на кода в функцията се появява надпис:

    100 + 160 = 260 

PHP форми и потребителски входни данни


PHP променливите $_GET и $_POST се използват за извличане на информация от форми с потребителски входни данни.

Манипулиране на PHP форми


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

    <html>
<body>

<form action="welcome.php" method="post">
Име: <input type="text" name="fname" />
Възраст: <input type="text" name="age" />
<input type="submit" value="Изпрати" />
</form>

</body>
</html>

Когато потребителят попълни горната форма и натисне бутона за изпращане данните от формата се изпращат кън PHP файл, който е наречен "welcome.php", който изглежда така:

    <html>
<body>

Здравейте <?php echo $_POST["fname"]; ?>!<br />
Вие сте на <?php echo $_POST["age"]; ?> години.

</body>
</html>

Ще повторя, че за да видите резултата от изпълнението на горните файлове трябва да имате инсталиран локален сървър. Това можете да направите като следвате указанията от първата част на безплатното видео ръководство "ИНСТАЛИРАНЕ НА ЛОКАЛЕН СЪРВЪР И JOOMLA!", публикувано в настоящия сайт. В папката www directory създавате папка "php". В тази папка записвате горните два файла като index.php и welcome.php. След това в прозореца на Localhost записвате http://localhost/php и натискате "Enter".

Утвърждаване на форми
Потребителските входни данни трябва да се утвърдят от браузъра кагато е възможно. Утвърждаването от браузъра е по-бързо и намалява натоварването на сървъра. Утвърждаване на сървъра се предприема когато входните данни ще се вкарват в базата занни. Добър начин за утвърждаване на форма на сървъра е да се изпрати формата към самата себе си вместо да се отива към друга страница. При това потребителят ще получи известие за грешка на същата страница на която е формата. Този начин улеснява намирането на грешки.

Функция $_GET


Вградената функция $_GET се използва за получаване на стойности от форма, които са изпратени по метода method="get". Информацията изпратена с метода GET е видима за всеки (показва се в адресното поле на браузъра) и е ограничена по количество на изпращаната информация до 100 символа. Пример:

    <form action="welcome.php" method="get">
Име: <input type="text" name="fname" />
Възраст: <input type="text" name="age" />
<input type="submit" value="Изпрати" />
</form>

Когато потребителят натисне бутона "Изпрати" изпратеното към сървъра може да изглежда по-подобен начин:

    http://dimarini.net/welcome.php?fname=Иван&age=28

Файлът "welcome.php" може да използва функцията $_GET за да извлече данните от формата:

        Здравейте <?php echo $_GET["fname"]; ?>!<br />
Вие сте на <?php echo $_GET["age"]; ?> години.

Когато се използва методът method="get" в HTML форми всички имена и стойности се показват в URL адреса. Този метод не трябва да се използва когато се изпращат пароли или друга подобна информация. Обаче, тъй като променливите се показват в URL адреса е възможно да се маркира страницата. В някои случаи това е полезно. Този метод не е подходящ за променливи с големи стойности, както беше вече споменато не трябва да надхвърля 100 символа.

Функция $_POST


Вградената функция $_POST се използва за извличане от форми на данни изпратени с метода method="post". Тази информация не се вижда и няма ограничение за количеството на изпращаната информация. Все пак, максимално зададеният размер на изпращаната информация е 8 Mb. Това може да се промени като се зададе необходимата стойност на post_max_size в файла php.ini. Пример:

    <form action="welcome.php" method="post">
Име: <input type="text" name="fname" />
Възраст: <input type="text" name="age" />
<input type="submit" value="Изпрати" />
</form>


Когато потребителят натисне бутона "Изпрати" адресът за изпращане ще изглежда по следнията начин:

    http://dimarini.net/welcom.php

Сега файла "welcome.php" може да използва функцията $_POST за да извлече данните:

        Здравейте <?php echo $_POST["fname"]; ?>!<br />
Вие сте на <?php echo $_POST["age"]; ?> години.

Понеже променливите не се показват в URL адреса не е възможно маркирането на страницата.

Функция $_REQUEST


Тази функция включва същността на функциите $_GET, $_POST и $_COOKIE. Може да се използва за извличане на данни от форми изпратени както с метода GET, така и с метода POST. Пример:

        Здравейте <?php echo $_REQUEST["fname"]; ?>!<br />
Вие сте на <?php echo $_REQUEST["age"]; ?> години.