>>>

Проектирование, разработка и оптимизация веб-приложений

Функции в PHP

В PHP существует две основные формы функций: встроенные и пользовательские.

Для определения пользовательской функции используется ключевое слово function.

Пример 1

<html>
<head>
<title>Определение и вызов функции</title>
</head>
<body>
<?php
function заголовок ($str, $n)
{
  echo  "<H$n>$str</H$n>";
}
заголовок ("Часть", 1);
заголовок ("Глава", 2);
заголовок ("Раздел", 3);
?>
</body>
</html>

Начиная с версии PHP 4.0 можно использовать значения аргументов, подставляемые по умолчанию.

Пример 2

<html>
<head>
<title>Функция со значением аргумента по умолчанию</title>
</head>
<body>
<?php
function заголовок ($str, $n = 2)
{
  echo  "<H$n>$str</H$n>";
}
заголовок ("Часть", 1);
заголовок ("Глава");
заголовок ("Раздел", 3);
?>
</body>
</html>

Примечание: Указанный ниже код будет отрабатывать не так, как Вы возможно ожидаете. Переменная $full во всех случаях будет true.

fun($ar, false);
function fun($row, $full = true){ ... }

Передача аргумента по ссылке

Аргументы можно передавать по ссылке. Тогда все изменения, сделанные с аргументом в теле функции, отразятся на самой переменной.

Пример 3

<html>
<head>
<title>Передача аргумента по ссылке</title>
</head>
<body>
<?php
function add ( &$a, $b )
{
  $a += $b;
  $b += $b;
}
$af = 10;
$bf = 6;
echo "af = $af; bf = $bf";
add ( $af, $bf );
echo "<br>После вызова функции:<br>";
echo "af = $af; bf = $bf";
?>
</body>
</html>

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

Для возврата значений из функции используется оператор return. Можно вернуть несколько значений, если применить список list().

Пример 4

<html>
<head>
<title>Функция, возвращающая список значений</title>
</head>
<body>
<?php
function ФИО()
{
  return array ("Иванов", "Иван", "Иванович");
}
list ($фамилия, $имя, $отчество) = ФИО();
echo "<table>";
echo "<tr><td>фамилия: <td>$фамилия";
echo "<tr><td>имя: <td>$имя";
echo "<tr><td>отчество: <td>$отчество</table>";
?>
</body>
</html>

Динамические функции

В PHP можно использовать динамические функции. Это означает, что если некоторой переменной присвоено имя функции, то с этой переменной можно обращаться точно так же, как с самой функцией.

Пример 5

<html>
<head>
<title>Переменные функции</title>
</head>
<body>
<?php
function funct1 ()
{
	echo "Мы внутри функции funct1( );<br>";
}
function funct2 ()
{
	echo "Мы внутри функции funct2( );<br>";
}
$myfunct = "funct1";
$myfunct();
$myfunct = "funct2";
$myfunct();
?>
</body>
</html>

Глобальные переменные

Чтобы переменная, созданная вне функции, была доступна внутри функции, надо объявить ее глобальной с помощью инструкции global.

Пример 6

<html>
<head>
<title>Доступ к глобальной переменной</title>
</head>
<body>
<?php
$gg = 45;
function funct ()
{
	global $gg;
	echo "Глобальная переменная имеет значение - $gg";
}
funct ();
?>
</body>
</html>

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

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

Пример 7

<html>
<head>
<title>Сохранение значения переменной между вызовами функции</title>
</head>
<body>
<?php
function funct (&str)
{
	static $ss = 0;
	$ss++;
	echo "<h2>$ss. $str</h2>";
}
funct ("Понедельник");
echo "Король гулял в парке";
funct ("Вторник");
echo "Король охотился";
?>
</body>
</html>

Была создана и проинициализирована переменная $ss. По отношению к функции funct( ) эта переменная останется локальной. При втором и последующих вызовах функции funct( ) инициализация игнорируется, а запоминается последнее присвоенное значение.


Размер шрифта:
А
А
А
Цвет сайта:
A
A
A
Изображение:
Вкл.
Выкл.
Обычная версия