2014-03-02 64 views
0

爲什麼不能在wordpress中使用我的功能?爲什麼我在Wordpress中的功能不工作?

我的代碼

add_post_meta($ids, 'price', $price, true); 
$price_add = get_post_meta($id, 'price', true); 

function myprice(){ 
    if ($price_add != ' '){ 
     echo $price_add." Euro"; 
    } 
    else { 
     echo "None"; 
    } 
} 

我嘗試使用,如果(isset($ price_add)),但無法正常工作。

我想顯示價格介紹或顯示文字「無」。

+0

要從功能期待什麼'myprice()'? –

+0

我想要在中顯示價格或顯示文字「無」。 – golaz

回答

2

您試圖使用一個不在「範圍內」的變量。您可能需要閱讀variable scope上的PHP手冊頁。

函數是可重用的一段代碼,帶有輸入和輸出,並且在PHP變量中對它們聲明的函數進行「作用域」(可見)。(主要的異常是全局變量,它們通常是皺眉的因爲他們使代碼難以閱讀,重用和測試;靜態變量和對象成員的工作方式稍有不同)

在你的情況,你想一個函數,它需要輸入一個價格,並呼應價格,如果它是。不是一個空字符串(或者,正如你寫的那樣,一個空格);你可能定義是這樣的:

function myprice($price_to_display) { 
    if ($price_to_display != ' '){ 
     echo $price_to_display." Euro"; 
    } 
    else { 
     echo "None"; 
    } 
} 

你再調用其他地方,傳遞你要顯示的值,就像這樣:

$price_add = get_post_meta($id, 'price', true); 
myprice($price_add); 

請注意,我命名變量中爲了清晰起見有不同的功能你可以稱它爲$price_add,但這不會使它以任何特殊的方式連接到另一個名爲$price_add的變量。

[編輯補充...]其實,你並不需要有一個變量在所有當你調用的函數 - 你所提供是輸入參數。所以,你也可以寫這樣的:

myprice(get_post_meta($id, 'price', true)); 
+0

不起作用。我用這個代碼:function show_price($ show_my_price){ if($ show_my_price!=「」){ echo $ show_my_price。「EURO」; } else {echo「Note」;} } <?php show_price($ show_my_price); ?> ...顯示爲空(無回顯)。 – golaz

+0

@golaz如果沒有在上下文中看到實際的代碼很難說,但'show_price($ show_my_price);'似乎是錯誤的 - 您以前使用'$ price_add = get_post_meta($ id,'price',true);'所以它需要'show_price($ price_add);'。請注意從*外*代碼*到*函數中傳遞的變量與其在函數*中的名稱*之間的區別。你也可以寫'show_price(get_post_meta($ id,'price',true));' – IMSoP

+0

@golaz另外,試着寫'var_dump(get_post_meta($ id,'price',true));'檢查你認爲你通過的價值實際上是在第一個地方設置的... – IMSoP

相關問題