Как использовать оригинальные функции PHP, которые я создал? - PullRequest
0 голосов
/ 09 июля 2011

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

Я создал две функции, которые, я думаю, представляют то, что я пытаюсь сделать:

  1. функция, которая принимает 2, 3 или 4 аргумента и возвращает как сумму, так и среднее значение предоставленных аргументов.

  2. функция, которая принимает любую строку предложения в качестве аргумента. Функция сообщает длину строки и количество слов в строке. Функция заменяет слова «кошка» и «собака» на «мяу» и «кора», ЕСЛИ эти слова существуют в строке. Измененная строка возвращается в виде массива. Если кошка и собака не найдены, функция должна вернуть строку сообщения «У вас нет домашних животных».

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

Вот мой код:

первая функция:

    <?php
    function sum($var1, $var2, $var3, $var4)
    {
    return $var1 + $var2 + $var3 + $var4;
    }

    function mean($var1, $var2, $var3, $var4)
    {
    return $var1 + $var2 + $var3 + $var4 / 4;
    }
    ?>

Вторая функция:

    <?php
    function phptest($input) {
    $search = array('meow', 'bark');
    $replace = array('cat', 'dog');
    $output = str_ireplace($search, $replace, $input, $replace_count);
    if ($replace_count === 0) {
    return false;
    } else {
    return explode(' ', $output);
    }
    }

    $result = phptest($input_string);
    if ($result === false) {
    echo 'You have no pets';
    } else {
    var_dump($result);
    }
    ?>

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

    <?php
    require('myfunctions.php');
    ?>

    <form action="" method="post">
    <input name="input" type="text" size="20" maxlength="20" />
    <input name="submit" type="submit" value="submit" />
    </form>

Большое спасибо!

Ответы [ 5 ]

1 голос
/ 09 июля 2011

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

    <?php  
    //THE FUNCTION
    function summation() 
    {
        $sum = 0;
        for ($i=0; $i<func_num_args(); $i++) $sum+= func_get_arg($i);
        return $sum;  
    }  
    //THE IMPLEMENTATION
    echo summation(1,5,7); //echo's 13
    echo summation(1,5,6,8) //echo's 20
    ?>

В качестве альтернативы, вы можете использовать встроенную в PHP функцию array_sum:

<?php
$a = array(2, 4, 6, 8);
echo array_sum($a); //echo's 20
?>

Что касается вашей функции phptest () ... Я предлагаю назвать ее чем-то менее широким.Это плохая привычка заключать соглашения о наименовании;но похоже, что он функционален.

Вы можете найти опубликованную информацию в PHP $ _POST [] массиве .

1 голос
/ 09 июля 2011

Если вы хотите, чтобы ваши функции были доступны для нескольких файлов, то то, что у вас есть, правильно.Поместите свои функции PHP в файл «myfunctions.php» и укажите его на страницах, на которых вы хотите их использовать.После этого вы сможете вызывать их так же, как и любые другие функции, например:

<?php echo sum(1,2,3,4); ?>

Для вывода 10.

1 голос
/ 09 июля 2011

Ваша форма не нуждается во фрагменте php, ей нужно действие, которое представляет собой скрипт, который обрабатывает ввод, то есть

<form action="doStuff.php" method="post">

, а затем в файле doStuff.php есть что-то вроде

<?php
require_once('myfunctions.php');
// read the value enterd by the user into variable
$input = $_REQUEST['input'];
// call your function with the value
phptest($input);
?>
0 голосов
/ 09 июля 2011

myfunctions.php:

<?php
function sum($var1, $var2, $var3, $var4)
{
return $var1 + $var2 + $var3 + $var4;
}

function mean($var1, $var2, $var3, $var4)
{
return $var1 + $var2 + $var3 + $var4 / 4;
}

function phptest($input) {
$search = array('meow', 'bark');
$replace = array('cat', 'dog');
$output = str_ireplace($search, $replace, $input, $replace_count);
if ($replace_count === 0) {
return false;
} else {
return explode(' ', $output);
}
}

?>

страница вы должны справиться со своими функциями:

<?php
require('myfunctions.php');
if($_POST) {
    $result = phptest($_POST['input']);
    if ($result === false) {
        echo 'You have no pets';
    } else {
        var_dump($result);
    }
}
?>

<form action="" method="post">
<input name="input" type="text" size="20" maxlength="20" />
<input name="submit" type="submit" value="submit" />
</form>
0 голосов
/ 09 июля 2011

после загрузки необходимого php-файла (предпочтительно с require_once, у вас нет глобального кода, не так ли?) Вы можете обращаться к функциям так же, как и к функциям, определенным локально.

if (isset($_POST['input'])) {
  phptest($_POST['input']);
} else {
  /...
}
...