2013-07-05 101 views
-5

好的,所以我有一些代碼給我適合。函數Echo vs返回

調用的函數d($z);

$ Z ^本身是在代碼的其他地方聲明的變量。

這不起作用:

function d($x1){ 
$distance = $x1; 
return $distance; 
} 

這工作:

function d($x1){ 
$distance = $x1; 
echo $distance; 
} 

任何想法,爲什麼?

注意:我不希望該值echo'd。我希望能夠稍後使用該值作爲變量,並且不一定會打印到屏幕上。 (現在,上面是一個簡化版本,很多已被刪除,我真正想要做什麼,但即使上述不能正常返回)

雖然這不是我想要做的,我想使用$ distance的結果作爲內部變量(而不是回顯它),如果我使用<?=$distance?>它不適用於返回。

+2

顯示調用函數的代碼。它是否將結果分配給變量? – Barmar

+1

你怎麼稱呼d()?發佈其餘的代碼。 – Gustavo

+0

Does'nt返回正確什麼?你必須給我們更多的細節。它被如何使用等? – Prix

回答

1

有2種可能(甚至更多)的問題:

  1. 你是不是傳遞一個正確的值到函數

  2. 你是不是分配回給一個變量(例如$value = d("some value here");

編輯:不要僞造噸回聲$值(存儲返回)

+0

奇怪......當我去編輯時,它說2(我發誓我輸入2),仍然輸出1.什麼? –

+1

@Barmar他實際上寫了它,但忘了添加空間來實現它。 – Prix

0

兩者都完全按預期工作。

在第一個例子中,你不函數d

改變它的值顯示到

function d($x1) 
{ 
     $distance = $x1; 
     return $distance; 
} 

echo d(5); 

,它會顯示出來。

在第二種情況下,您不返回值,所以函數爲void,但是您顯示函數d()內的距離,以便顯示它。