2013-02-13 128 views
0

我知道這已經在這裏以各種方式提出,但我認爲我必須簡單地愚蠢!無法將一個變量傳遞給php函數

我有這個令人難以置信的簡單功能:

$firstline = "please say"; 

function localSidebarText() { 
global $firstline; 

echo $firstline; 
echo "hello"; 

} 

localSidebarText(); 

然而,它輸出的單詞Hello,而不是之前「請說」。

我做錯了什麼令人難以置信的顯而易見的事情?

謝謝!

+0

你不傳遞任何的功能。你也沒有在函數中聲明'$ firstline'是全局的。 – jasonbar 2013-02-13 22:39:30

+0

好吧,那裏有輸入錯誤 - 我正在簡化實際功能,忘記更改變量名稱 - 我已經編輯過它,但它仍然不起作用... – Gurubear 2013-02-13 22:48:07

+0

@Gurubear現在可以工作,檢查您是否保存它,如果你打開正確的文件,如果你正在刷新緩存(FF中的CTRL + F5)。 – HamZa 2013-02-13 22:52:02

回答

0

您的變量不在函數範圍內,因此在函數本身中未定義。您可以取代:

global $pagetitle; 

有:

global $pagetitle, $firstline; 

或把變量函數或內最後但並非最不重要給函數變量作爲參數。

+0

是的,做了一個錯字 - 但修正後的版本不起作用 – Gurubear 2013-02-13 22:50:14

+0

我剛試過它和它的工作。 <?php $ firstline =「please say」; (){ global $ firstline,$ pagetitle; echo $ firstline; 回聲「hello」; } localSidebarText(); – 2013-02-13 22:52:14

+0

好吧,然後我有其他地方發生了奇怪的事情! – Gurubear 2013-02-13 22:57:10

2

避免使用全局變量。 「傳遞」 的東西的功能很簡單:

function localSidebarText($pageTitle, $firstLine) { 
    echo $firstLine; 
    echo "hello"; 
} 

localSidebarText("Some page title", "The first line"); 
+0

這是我嘗試的第一件事。我開始認爲我在其他地方有些奇怪的事情正在阻止這項工作... – Gurubear 2013-02-13 22:53:35

-1
global $firstline = "please say"; 
global $pagetitle; 
function localSidebarText() { 
echo $firstline; 
echo "hello"; 
} 

localSidebarText(); 

OR

global $pagetitle; 
function localSidebarText($textToPrint) { 
echo $textToPrint; 
echo "hello"; 
} 

localSidebarText("please say"); 
+0

不要使用全局。 – 2013-02-13 22:58:37