2015-06-12 93 views
0

我已經創建了一個函數,該函數根據數組函數返回有關網站的信息。該功能的工作原理是這樣的:函數回聲(PHP)

site_info('sitename'); 

將返回:

Example Site Name 

使用類似下面的代碼:

function site_info($info) { 
    $array = array('sitename' => 'Example Site Name'); 
    echo $array[$info]; 
} 

我要打印這些未格式化,然後經過格式化他們,例如:

echo '<title>'.site_info('sitename').'</title>'; 

然而,這打印到:

Example Site Name <title></title> 

有沒有人有任何想法爲什麼發生這種情況?我的一個想法是,可能是因爲該函數迴應輸出,然後在另一個輸入中它不喜歡它 - 如果是這樣的話,是否有解決方法?

+2

因爲你不**返回任何東西從你的功能。你在函數本身中打印它,所以函數在'echo'之前被調用。只是**返回**值和所有東西 – Rizier123

+0

用'return $ array [$ info];' – splash58

+0

'$ array = array('sitename'=>'替換'echo $ array [$ info];'示例站點名稱);'看到什麼?你缺少''',它應該是'$ array = array('sitename'=>'示例站點名稱');'。此外,你應該**返回**,儘管回聲也可能工作。另外,還有另一個錯誤:'echo''.site_info('sitename')。'';'...仍然缺少最後一個''''。 http://sandbox.onlinephpfunctions.com/code/9bc2af9f9702fbc1409ca70aa4880ada6cfccbe9反正就是這樣。 – briosheje

回答

3

使用收益,並確保您使用的是正確的陣列鍵如:

function site_info($info) { 
    $array = array('sitename' => 'Example Site Name'); 
    return $array['sitename']; // in your case there will be $info as key 
} 
1

你必須return從函數的值 -

function site_info($info) { 
    $array = array('sitename' => 'Example Site Name'); // ' was missing 
    return $array[$info]; 
} 

,然後調用函數echo - 內部函數,而不是eacho

echo '<title>' . site_info('sitename') . '</title>'; // ' was missing 
+0

你的代碼仍然有語法錯誤!哦,我想知道你從哪裏得到這個:http://stackoverflow.com/questions/30801206/function-inside-of-an-echo-php#comment49650671_30801206 – Rizier123

+0

已更新。從OP複製的代碼。錯過了他們。 –

+0

讚賞@ShaifulIslam。這種人存在。 :) –