2012-02-18 41 views
5

ok, vì vậy tôi đang tạo ra một hệ thống php login và muốn có một cách đơn giản để có được những liên kết đến trang đăng xuất bằng cách gọi một chức năng nhưng nó vẫn không ngừng trở về 0. Anh ấy là chức năng của tôi:chức năng php trả về 0?

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

và đây là cách tôi đang sử dụng nó:

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

Tuy nhiên nó vẫn không ngừng sản xuất:

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

gì đang xảy ra vậy?

+0

* auth_vars.php' chính xác * chứa gì? – Quentin

+7

Sử dụng '.' để ghép các chuỗi trong PHP, không phải' + ' –

+0

Không thể nói nhiều hơn mà không nhìn thấy auth_vars.php, nhưng có vẻ như một cái gì đó trong tệp đó có thể trả về 0. Hãy thử di chuyển phần bao gồm lên đầu tệp thay vì bên trong hàm. Chỉnh sửa: @Pekka đúng, đó là vấn đề của bạn. –

Trả lời

5

Mã PHP của bạn không chính xác. Nó nên là:

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

@luke: ghi chú "." thay vì "+". Toán tử số học "+" chuyển logout_link() thành một hàm số ... trả về kết quả "0". – paulsm4

7

Trong PHP . là các nhà điều hành nối và + là một trong hai việc bổ sung, hoặc các nhà điều hành sáp nhập mảng. Bởi vì bạn kết hợp + với các kiểu đơn giản (không phải mảng) PHP giảm giá trị cả hai giá trị thành một giá trị số. Trong trường hợp của bạn, chỉ cần 0+0

6

sử dụng PHP . để ghép nối các chuỗi, chứ không phải +.

Hãy thử điều này thay vì:

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

Bạn có nghĩa là:

return $auth_path_login."?status=loggedout"; 

hành Nối là . trong PHP.

Các vấn đề liên quan