218 lines
8.2 KiB
Markdown
218 lines
8.2 KiB
Markdown
|
---
|
|||
|
title: PHP functions
|
|||
|
localeTitle: Функции PHP
|
|||
|
---
|
|||
|
Функции PHP похожи на другие языки программирования. Функция представляет собой фрагмент кода, который принимает еще один вход в виде параметра и выполняет некоторую обработку и возвращает значение.
|
|||
|
|
|||
|
Вы уже видели много функций, таких как fopen () и fread () и т. Д. Они встроены в функции, но PHP дает вам возможность создавать свои собственные функции.
|
|||
|
|
|||
|
Есть две части, которые должны быть понятны вам -
|
|||
|
|
|||
|
### Создание функции PHP
|
|||
|
|
|||
|
Вызов функции PHP На самом деле вам вряд ли нужно создавать свою собственную функцию PHP, потому что уже существует более 1000 встроенных функций библиотеки, созданных для разных областей, и вам просто нужно позвонить им в соответствии с вашими требованиями.
|
|||
|
|
|||
|
Пожалуйста, обратитесь к Справочнику по функциям PHP для полного набора полезных функций.
|
|||
|
|
|||
|
Создание функции PHP Его очень легко создать собственную функцию PHP. Предположим, вы хотите создать функцию PHP, которая просто напишет простое сообщение в вашем браузере, когда вы его назовете. Следующий пример создает функцию writeMessage (), а затем вызывает ее сразу после ее создания.
|
|||
|
|
|||
|
Обратите внимание, что при создании функции его имя должно начинаться с функции ключевого слова, и весь код PHP должен быть помещен внутри скобок {и}, как показано в следующем примере ниже -
|
|||
|
```
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<title>Writing PHP Function</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
/* Defining a PHP Function */
|
|||
|
function writeMessage() {
|
|||
|
echo "You are really a nice person, Have a nice time!";
|
|||
|
}
|
|||
|
|
|||
|
/* Calling a PHP Function */
|
|||
|
writeMessage();
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
На этом отобразится следующий результат -
|
|||
|
```
|
|||
|
You are really a nice person, Have a nice time!
|
|||
|
```
|
|||
|
|
|||
|
### Функции PHP с параметрами
|
|||
|
|
|||
|
PHP дает вам возможность передавать свои параметры внутри функции. Вы можете передать столько параметров, сколько хотите. Эти параметры работают как переменные внутри вашей функции. Следующий пример берет два целочисленных параметра и объединяет их, а затем печатает их.
|
|||
|
```
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<title>Writing PHP Function with Parameters</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
function addFunction($num1, $num2) {
|
|||
|
$sum = $num1 + $num2;
|
|||
|
echo "Sum of the two numbers is : $sum";
|
|||
|
}
|
|||
|
|
|||
|
addFunction(10, 20);
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
На этом отобразится следующий результат -
|
|||
|
```
|
|||
|
Sum of the two numbers is : 30
|
|||
|
```
|
|||
|
|
|||
|
### Передача аргументов по ссылке
|
|||
|
|
|||
|
Можно передавать аргументы в функции по ссылке. Это означает, что ссылка на переменную управляется функцией, а не копией значения переменной.
|
|||
|
|
|||
|
Любые изменения, внесенные в аргумент в этих случаях, изменят значение исходной переменной. Вы можете передать аргумент по ссылке, добавив амперсанд к имени переменной либо в вызове функции, либо в определении функции.
|
|||
|
|
|||
|
В следующем примере изображены оба случая.
|
|||
|
```
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<title>Passing Argument by Reference</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
function addFive($num) {
|
|||
|
$num += 5;
|
|||
|
}
|
|||
|
|
|||
|
function addSix(&$num) {
|
|||
|
$num += 6;
|
|||
|
}
|
|||
|
|
|||
|
$orignum = 10;
|
|||
|
addFive( $orignum );
|
|||
|
|
|||
|
echo "Original Value is $orignum<br />";
|
|||
|
|
|||
|
addSix( $orignum );
|
|||
|
echo "Original Value is $orignum<br />";
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
На этом отобразится следующий результат -
|
|||
|
```
|
|||
|
Original Value is 10
|
|||
|
Original Value is 16
|
|||
|
```
|
|||
|
|
|||
|
### Функции PHP, возвращающие значение
|
|||
|
|
|||
|
Функция может возвращать значение с помощью оператора return в сочетании со значением или объектом. return останавливает выполнение функции и отправляет значение обратно вызывающему коду.
|
|||
|
|
|||
|
Вы можете вернуть более одного значения из функции с использованием возвращаемого массива (1,2,3,4).
|
|||
|
|
|||
|
Следующий пример принимает два целочисленных параметра и объединяет их вместе, а затем возвращает их сумму в вызывающую программу. Обратите внимание, что ключевое слово return используется для возврата значения из функции.
|
|||
|
```
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<title>Writing PHP Function which returns value</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
function addFunction($num1, $num2) {
|
|||
|
$sum = $num1 + $num2;
|
|||
|
return $sum;
|
|||
|
}
|
|||
|
$return_value = addFunction(10, 20);
|
|||
|
|
|||
|
echo "Returned value from the function : $return_value";
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
На этом отобразится следующий результат -
|
|||
|
```
|
|||
|
Returned value from the function : 30
|
|||
|
```
|
|||
|
|
|||
|
### Установка значений по умолчанию для функциональных параметров
|
|||
|
|
|||
|
Вы можете установить для параметра значение по умолчанию, если вызывающий объект функции не передает его.
|
|||
|
|
|||
|
Следующая функция печатает значение NULL в случае, если использование этой функции не передается.
|
|||
|
```
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<title>Writing PHP Function which returns value</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
function printMe($param = NULL) {
|
|||
|
print $param;
|
|||
|
}
|
|||
|
|
|||
|
printMe("This is test");
|
|||
|
printMe();
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
Это приведет к следующему результату -
|
|||
|
```
|
|||
|
This is test
|
|||
|
```
|
|||
|
|
|||
|
### Динамические вызовы функций
|
|||
|
|
|||
|
Можно назначать имена функций как строки для переменных, а затем обрабатывать эти переменные точно так же, как и имя функции. Следующий пример изображает это поведение.
|
|||
|
```
|
|||
|
<html>
|
|||
|
|
|||
|
<head>
|
|||
|
<title>Dynamic Function Calls</title>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
function sayHello() {
|
|||
|
echo "Hello<br />";
|
|||
|
}
|
|||
|
|
|||
|
$function_holder = "sayHello";
|
|||
|
$function_holder();
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
На этом отобразится следующий результат -
|
|||
|
```
|
|||
|
Hello
|
|||
|
|
|||
|
```
|