Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык программирования PHP(финал).docx
Скачиваний:
6
Добавлен:
27.08.2019
Размер:
158.86 Кб
Скачать

Функции в php.

Бывают такие ситуации, что какую–то последовательность инструкций вы повторяете много раз. Функция – это набор определенных инструкций, которая принимает аргументы, делает с ними некие операции и возвращает результат.

Формат функции: function имя(аргументы) {    // тело функции; }

Имя функции может состоять из латинских буков, цифр и знаков подчеркивания. Начинаться с цифры оно не должно. Всё точно так же как с названиями переменных.

П ример: Результат:

<?php $arr=Array('one','two','three'); function news($ins,$ins_2,$ins_3) { echo "$ins <br> $ins_2 <br> $ins_3"; } news($arr[0],$arr[1],$arr[2]); ?>

Область видимости

Существует такое понятие – область видимости. Функция представляет из себя своего рода подпрограмму. У этой подпрограммы есть свои переменные, а переменные из главной программы она просто не видит. На самом деле в функцию передаётся на переменная, а её точная копия. Поэтому когда наша подпрограмма завершает свое выполнение – все её переменные (копии) удаляются.

Передача параметров по ссылке

Для того, чтобы передать в функцию не значение переменной, а саму переменную которую функция сможет изменить и за её пределами мы сможем ею пользоваться – существует особый способ передачи параметров – по ссылке. Выглядит вызов функции с параметрами по ссылке с добавлением символа «&».

Формат функции с передачей параметров по ссылке: function (&имя_переменной);

Когда функция вызывается с параметром по ссылке интерпретатор передает в функцию не значение переменной, а идентификатор ячейки в памяти. При вызове функции с параметрами обычным способом все изменения происходят в другой, новой ячейке памяти и за пределами функции работа продолжается со старой ячейкой. А при передаче по ссылке все изменения происходят в той же ячейке и поэтому изменения видны и из вне самой функции.

Оператор return

Функция не обязана что либо возвращать конструкцией return. Возможно, она просто выполняет ряд операций, например, вывод нескольких строк или еще что–либо. В таком случае интерпретатор возвращает значение Null. Но бывает, что одно возвращенного значения не хватает. Также возможно, что вы хотите, чтобы изменения, произошедшие с переменными в функции отразились и в основной программе . Для этого как раз и используется передача параметров по ссылке.

Второй способ для того чтобы передать из функции несколько параметров, это использование функции global.

Конструкция global позволяет функции увидеть и использовать переменную из внешнего мира. В данном случае даже не придётся передавать ей параметры, так как она их увидит сама.

Формат функции: global переменная_1, переменная_2;

П ример: Результат:

<?php $arr=Array(2,4,3,1); function news($ins,$ins_2,$ins_3) { $sum=$ins+$ins_2+$ins_3; return $sum; } $sum=$arr[0]+$arr[1]; $b= news($arr[0],$arr[1],$arr[2]); echo "сумма внутри функции = $b <br>"; echo "сумма внутри функции = $sum "; ?>