Функция php

Функция php, её свойства, особенности и все что с ней связано. По материалам сайта site-on.net.

Что такое функция?

Функция – это участок кода, который можно многократно выполнять в различных местах PHP скрипта (страницы).
Если какой-то участок кода php будет повторяться, то обязательно делаем из него функцию!
Внутри функции можно использовать: циклы, условия, вызывать любые функции (как встроенные, так и собственные).

function siteOn(){
    // тело функции
    echo 'Привет всем читателям блога Site on!';
}

siteOn(); — вызываем функцию в шаблонах верстки (сколько угодно раз)

Все функции глобальны, т.е. можно назначать и вызывать функцию в любом месте сайта, не только в файле functions.php. Последовательность не важна: можно сначала вызвать функцию, а потом ее назначить (кроме функций внутри других функций и функций с условием).

Проверка на существование

Нельзя вызывать одну и туже функцию дважды.

function siteOn(){
    // любой код или без него
}

if(function_exists('siteOn')){
    echo 'Такая функция уже есть!';
}

Аргументы функций

<?php

function siteOn($author){
echo $author . ' - автор блога Site on!
';
}

siteOn('Сергей'); // первый способ

$name = 'Андрей'; // второй способ
siteOn($name);

siteOn(); // ничего не передаём

?>

Если в функции есть переменная — пустого значения быть не должно

Функция может иметь сколько угодно аргументов, например:

<?php
function siteOn($author, $blog){
    echo $author . ' - автор блога '. $blog .'
'; } siteOn('Сергей', 'Site on!'); // первый способ $name = 'Андрей'; // второй способ siteOn($name, 'Сладкоешка'); siteOn('Фёдор Иванов'); // передали только 1 аргумент — будет ошибка! ?>

Аргументы по умолчанию

<?php
function siteOn($author, $blog='Site on!'){
    echo $author . ' - автор блога '. $blog .'
'; } siteOn('Сергей'); — Теперь можно вызвать только 1 аргумент, второй возьмет значение по-умолчанию siteOn('Сергей','Opttour'); — либо назначаем 2 переменных, и значение по-умолчанию игнорируется ?>

Аргументы по умолчанию обязательно записываются последними

Функции, зависящие от условий

<?php
$apply = true;

sayHi(); //вызвали функцию sayHi, её можно вызывать в любом месте

/*здесь нельзя вызвать функцию sayGoodbye, так как мы ещё не проверили
условие и не зашли внутрь конструкции if*/
if($apply){
    function sayGoodbye(){
        echo 'Всем пока! 
'; } } /*вот теперь можем вызвать sayGoodbye*/ sayGoodbye(); function sayHi(){ echo 'Всем привет!
'; } ?>

Вложенные функции

Вложенная функция – это функция, объявленная внутри другой функции.

<?php

/*Здесь нельзя вызвать sayGoodbye, так как
она появится только после вызова функции sayHi*/

sayHi(); /*вызвали функцию sayHi, её можно вызывать в любом месте*/

/*Теперь можем вызывать sayGoodbye*/
sayGoodbye();

function sayHi(){
    echo 'Всем привет! 
'; function sayGoodbye(){ echo 'Всем пока!
'; } } ?>

Нельзя вызывать функцию sayHi дважды — будет ошибка, т.к. будет назначаться одна и та же функция sayGoodbye

Область видимости переменных

В PHP две области видимости: глобальная и локальная.

<?php

function sayHi($name){
    echo 'Привет, '.$name.'! 
'; $name = 'Рудь Сергей'; } $name = 'Андрей'; sayHi($name); echo $name; // выдаст Андрей, несмотря на то что последней вызывалась функция sayHi ?>

Переменная внутри функции — локальна, остальные переменные глобальные.

Обращение к глобальным переменным из локальной области видимости

<?php

function sayHi($name){
    echo 'Привет, '.$name.'! 
'; global $name; /*начиная с этого момента мы имеем ввиду глобальную переменную $name*/ $name = 'Рудь Сергей'; } $name = 'Андрей'; sayHi($name); echo $name; // выдаст Сергей ?>

Статические переменные

Каждый раз когда мы будем вызывать функцию sayHi, счетчик $c будет считать количество (до перезагрузки страницы)

function sayHi($name){
    static $c = 0; // счётчик, сделали статическим
    echo 'Привет, '.$name.'! 
'; $c++; // увеличиваем счётчик на 1 echo 'Всего поздоровались ' . $c . ' раз.
'; }

Возврат значений

<?php

function getSquare($number){
    $result = $number*$number;
    echo $result; // показать результат
    return $result; // вернуть результат
}

getSquare(5);

?>

Return возвращает значение и прерывает работу функции, то есть весь код, который находится ниже ключевого слова return никогда не исполниться.

Рекурсивная функция

Рекурсивная функция – это функция, которая вызывает сама себя. Не рекомендуется использовать, ресурсоёмкая.

<?php
function countPlease($number){
    echo $number . '
'; if($number < 20){ // чтобы рекурсия не стала бесконечной countPlease(++$number); // функция countPlease вызвала сама себя } } countPlease(1); ?>

Результатом данной функции будет перебор чисел от 1 до 20.

Поделится информацией с друзьями

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Функция php
Статусы заказов
Рекомендации для васСтатусы заказовOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.