2011-07-09 13 views
-1

我想我有我需要的一切來完成我想要做的事情,我只是不知道如何將它全部結合起來。有人可以告訴我該把什麼放在哪裏以及如何使它起作用嗎? 這裏是我想要的,我有什麼:如何使用我創建的原始php函數?

我創建了兩個函數,我想代表我想做的事:

  1. 接受2,3或4個參數和返回功能提供的參數的總和和平均值。

  2. 將任何句子字符串作爲參數的函數。該函數報告字符串的長度和字符串中的字數。如果這些單詞存在於字符串中,該函數會將單詞「貓」和「狗」替換爲「喵」和「吠叫」。修改後的字符串作爲數組返回。如果沒有找到貓和狗,該功能應該返回消息字符串「你沒有寵物」。

我想這兩個功能在使用某些函數調用的第一個功能和終極版獲得由第二功能檢查字符串第二個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; 
    } 
    ?> 

二級功能:

<?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> 

感謝這麼許多!

+1

不知道你有什麼問題。仍然平均功能不正確。它應該返回($ var1 + $ var2 + $ var3 + $ var4)/ 4. – Gedrox

+0

謝謝...我會修復這個函數。我的問題是我只是不知道在哪裏把我的fucntions放在第一個文件夾中,以及如何在第二個文件夾中調用它們。有沒有人喜歡如何使用我可以看到的功能模板?謝謝!! – jon

+1

你可能想看看處理手冊的一部分的表單(ond的其他部分)http://php.net/manual/en/tutorial.forms.php - 你的算術和字符串處理之間似乎沒有關係功能。如果你想得到相關的答案,你需要更好地解釋你實際上想要做的事情。 – mario

回答

0

加載完所需的php文件(最好用require_once,這裏沒有全局代碼,是嗎?),您可以像訪問本地定義的函數一樣訪問函數。

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

如果你希望你的函數可以被多個文件賦值,那麼你所擁有的是正確的。將你的PHP函數放在'myfunctions.php'文件中,並在你想要使用它們的頁面上要求它。您將可以像調用其他任何功能一樣呼叫它們:

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

輸出10。

1

您的形式並不需要的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); 
?> 
1

如果您真的想要打動您的主人,請創建總和功能,以便它接受任意數量的參數:

<?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's $_POST[] array找到發佈的信息。

0

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); 
} 
} 

?> 

頁u必須處理的功能:

<?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

非常感謝......它真的幫助了我。任何人都可以看到爲什麼我的函數來取代單詞停止工作?我一直在看這個代碼很長時間,我再也看不到自己的錯誤了......謝謝! – jon