Назначение параметров PHP - PullRequest
4 голосов
/ 06 марта 2012

Я пытаюсь понять концепцию функций PHP. Я знаю, как его создать.

function functionName()
{
    //code to be executed;
}

Я также знаю, как вызвать функцию. Я просто немного смущен тем, для чего предназначен параметр. Я прочитал руководство по php и учебник w3schools.com. Насколько я понимаю, вам нужен параметр для передачи значения в функцию? Если это правильно, почему бы просто не создать его внутри функции? Зачем использовать параметр?

Как это:

<?php
function num()
{
$s=14;
echo $s;
}
num();
 ?>  

Я знаю, что вы можете сделать:

<?php
function num($s=14)
{
    echo $s;
}
num();
?>

или

<?php
function num($s)
{
    echo $s;
}
num($s=14);
?>

Может ли кто-нибудь дать мне реальную заявку на использование параметра, скажем, может быть, пользовательский сайт с динамическим контентом? Я думаю, это поможет мне лучше понять это.

Ответы [ 7 ]

3 голосов
/ 06 марта 2012

Передача параметра позволяет использовать одну функцию несколько раз. Например:

Если вы хотите написать ОДНУ функцию, отправляющую почту - вы можете передать следующие параметры:

$to = $_POST['to'];
$from = $_POST['from'];
$subject = $_POST['subject'];

Тогда в вашей функции:

 function sendmail($to, $from, $subject){

//code to be executed

}

Теперь вы можете повторно использовать функцию отправки в различных точках вашего веб-приложения.

1 голос
/ 06 марта 2012

Функция что-то делает и дает результат.Он может принимать параметры для достижения этого результата, а может и нет.Простой калькулятор, как уже упоминалось, хорош.

Самый простой способ понять функции и параметры - это просто прочитать руководство по PHP - большинство функций в основном языке PHP принимают параметры некоторого рода.Эти функции ничем не отличаются от функций, которые вы пишете.

1 голос
/ 06 марта 2012

Вот пример, скажем, у вас есть числа, представляющие цвета (это обычно при хранении данных в базе данных), и вы хотите вывести, какое число представляет какой цвет.

Скажем, вам приходилось делать это сотни раз для сотен чисел.

Вы бы устали писать 100 if отчетов 100 раз.

Вот пример функции ...

function colorType($type) {
    if ($type == 1) {
        return "Green";
    }
    elseif ($type == 2) {
        return "Blue";
    }
    elseif ($type == 3) {
        return "Red";
    }
    // etc
}

echo colorType(1) . "<br>"; // Green
echo colorType(2) . "<br>"; // Blue
echo colorType(3) . "<br>"; // Red
1 голос
/ 06 марта 2012

Давайте предположим, что вы хотите создать функцию, которая позволит людям суммировать числа, вы не можете записывать необходимые переменные в функции, потому что вы хотите, чтобы другие вводили их, а ваша функция показывает вывод:

function add($num1, $num2){
  return $num1 + $num2;
}

Теперь любой может позвонить / использовать вашу функцию для суммирования чисел:

echo add(5,1); // 6
echo add(2,1); // 3
echo add(15,1); // 16

Это самый самый простой пример, который можно привести, чтобы объяснить, почему вам нужны параметры:)

0 голосов
/ 06 марта 2012

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

Например:

function F_to_C($temp) { $temp = ($temp - 32) / 1.8; return $temp; }</p> <p>$temperature = 32;</p> <p>$new_temperature = F_to_C($temperature); // 0</p> <p>echo $temperature;</p> <p>$temperature2 = F_to_C(212); // 100</p> <p>echo $temperature2;

Здесь мы берем $temperature,который мы определили в коде, но могли быть введены пользователем как из формы, а затем отправить его в функцию F_to_C.Это позволяет нам преобразовать его в градусы Цельсия, чтобы мы могли затем отобразить его.В следующем разделе мы затем повторно используем функцию для преобразования точки кипения, которая отправляется непосредственно на этот раз как значение 212. Если бы мы в первый раз встроили $temperature = 32 в функцию, то мы все равно получили бы 0 в следствии.Однако, поскольку мы используем параметры, мы вместо этого получаем 100 назад, потому что он обрабатывает значение, которое мы указали при вызове функции.

0 голосов
/ 06 марта 2012

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

0 голосов
/ 06 марта 2012

Когда вы указываете function name($var=VALUE), вы устанавливаете значение по умолчанию.

function doit($s=14) {
  return $s + 5;
}

doit();  // returns 19
doit(3); // returns 8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...