2012-02-18 133 views
5

確定,所以我創建一個PHP的登錄系統,並希望以簡單的方式通過調用一個函數來獲取鏈接到註銷頁面,但它一直返回0。他是我的功能:php函數返回0嗎?

function logout_link() { 
include("auth_vars.php"); //This file contains $auth_path_login 
return $auth_path_login+"?status=loggedout";} 

這是怎麼我使用它:

<a href="<?php echo logout_link();?>">logout</a> 

但是它使生產:

<a href="0">logout</a> 

到底哪裏出問題了?

+0

確切* auth_vars.php包含什麼? – Quentin 2012-02-18 17:48:40

+7

使用'.'在PHP中連接字符串,而不是'+' – 2012-02-18 17:48:42

+0

如果沒有看到auth_vars.php,不能說更多,但它看起來像該文件中的某些內容可能會返回0.嘗試將include移動到文件的頂部而不是在功能裏面。編輯:@皮卡是對的,那是你的問題。 – 2012-02-18 17:50:44

回答

5

你的PHP代碼不正確。它應該是:

function logout_link() { 
include("auth_vars.php"); //This file contains $auth_path_login 
return $auth_path_login."?status=loggedout"; 
} 
+1

@luke:注意「。」而不是「+」。算術運算符「+」將logout_link()變成一個數字函數...返回結果「0」。 – paulsm4 2012-02-18 17:51:25

7

在PHP .是連接運算符和+要麼加入,或運營商合併陣列。因爲您將+與簡單類型(不是數組)組合在一起,PHP將這兩個值都轉換爲數值。在你的情況下,它只是0+0

6

PHP使用.連接字符串,而不是+

試試這個:

function logout_link() { 
    include("auth_vars.php"); //This file contains $auth_path_login 
    return $auth_path_login . "?status=loggedout"; 
} 
3

您的意思是:

return $auth_path_login."?status=loggedout"; 

級聯運算符是在PHP .