2012-05-07 80 views
1

下面我有一個用戶定義的函數:傳遞動態參數的函數

function char_replace($line1){ 
    $line1= str_ireplace("Snippet:", "", $line1); 
    // First, replace UTF-8 characters. 
    $line1= str_replace(
    array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $line1); 
    // Next, replace their Windows-1252 equivalents. 
    $line1= str_replace(
    array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $line1); 
} 

,我更換,我已經爆炸在多行文字,但我想一個動態的論點適用於功能char_replace其中$line很可能是$line2$line3所以我想這種方式轉換的字符: $line1 = char_replace($line1)

我要讓函數參數和str_replace函數/ str_ireplace參數是一個動態的變量,在那裏我可以只是轉換另一里ne像這樣: $random_line = char_replace($random_line) 這可能嗎?

回答

1

假設你結束你的函數return $line1;你可以這樣調用:

$line1 = char_replace($line1); 
$line2 = char_replace($line2); 
$line3 = char_replace($line3); 

你如何調用的參數在函數定義並不重要,他們是局部的功能,並且可以有一個不同的名字。

+0

謝謝,所有的答案是相似的,他們都工作,但我想知道爲學習目的爲什麼添加'返回'讓它是'動態'? – Tower

+2

函數定義了運行代碼的獨立上下文;函數參數定義了函數的輸入(它們可以用作局部變量),'return'定義輸出。你可以閱讀更多關於這個從PHP手冊 - http://www.php.net/manual/en/functions.user-defined.php –

+0

嗯,我部分理解你的說法。 – Tower

1

你只是想return語句添加到您的函數:

function char_replace($line1){ 
    $line1= str_ireplace("Snippet:", "", $line1); 
    // First, replace UTF-8 characters. 
    $line1= str_replace(
    array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $line1); 
    // Next, replace their Windows-1252 equivalents. 
    $line1= str_replace(
    array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $line1); 
    return $line1; 
} 
3

如果我讀這個權利,只需添加一回功能。所以:

function char_replace($string){ 
    $string= str_ireplace("Snippet:", "", $string); 
    // First, replace UTF-8 characters. 
    $string= str_replace(
    array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $string); 
    // Next, replace their Windows-1252 equivalents. 
    $string= str_replace(
    array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)), 
    array("'", "'", '"', '"', '-', '--', '...'), 
    $string); 

    return $string; 
} 

這將允許您傳遞任何字符串到函數並獲取修改後的字符串。