2012-04-23 54 views
0

我想做一個PHP函數,包裝變量,將檢查變量值,並更改它,如果它匹配另一個變量。 我敢肯定,我做錯了,但是......檢查一個PHP變量與一個泛型函數,將與任何變量

這是我到目前爲止有:

<?php 

function Clear_Value(){ 

    $val='NONE'; 

    if(this== $val){ this=='';} 

    }; 

$one = 'One'; 
$two = 'Two'; 
$three = 'NONE'; 
$four = 'Four'; 

Clear_Value($one); 
Clear_Value($two); 
Clear_Value($three); 
Clear_Value($four); 

echo $one.'<br>'; 
echo $two.'<br>'; 
echo $three.'<br>'; 
echo $four.'<br>'; 

?> 

我要爲輸出將是:

One 
Two 

Four 

我希望這很清楚。我仍然在學習PHP的功能,所以任何指針都會很棒。

感謝

+0

您只能使用'this'類中(這應該是'$ this')。 – nickb 2012-04-23 17:33:57

回答

3

你需要按引用傳遞參數:

function Clear_Value(&$arg){ 

    if ($arg == 'NONE') $arg = ''; 
} 

這樣,該函數可以修改該變量的內容。

活生生的例子:http://ideone.com/igHc5

+0

這是一個很好的方法(給定當前上下文),因爲此函數可以用作回調(即array_map)而不是處理多個變量。 – 2012-04-23 17:49:18

+0

這意味着你有兩個名爲'Clear_Value()'的函數 - 刪除你自己的函數並添加這個函數。 – Cal 2012-04-23 18:20:06

+0

是的,我確實有兩個。謝謝!這是我之後的事情。所以$ arg可以是任何東西,對吧?此外,PHP的術語是什麼,所以我可以更多地閱讀它? – Monty 2012-04-23 18:22:22

1

你的不變代表?

你在你的函數來創建一些輸入變量和使用&前綴(指內存變量)

function Clear_Value(&$var){ 

$val='NONE'; 

if($var == $val) 
    $var = ''; 

}; 

還有一件事,如果你想改變一個變量的值,可以使用只是單個「=」。我建議你看語法的基礎知識在php.net

對不起,我的英語

1

我不知道你期望在這裏。

但是當你執行這個程序時,它會顯示未定義的變量錯誤。

試試我的示例代碼改變 -

<?php 

    function Clear_Value($sam){ 

    $val='NONE'; 

    if($sam== $val){ $sam=='';} 
    echo $sam.'<br>'; 

    }; 

    $one = 'One'; 
    $two = 'Two'; 
    $three = 'NONE'; 
    $four = 'Four'; 

    Clear_Value($one); 
    Clear_Value($two); 
    Clear_Value($three); 
    Clear_Value($four); 
    /* 
    echo $one.'<br>'; 
    echo $two.'<br>'; 
    echo $three.'<br>'; 
    echo $four.'<br>'; 
    */ 
    ?> 
相關問題