2012-02-18 5 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

+7

'+'가 아닌 PHP에서 문자열을 연결하기 위해'.'를 사용하십시오. –

+0

auth_vars.php를 보지 않고는 더 이상 말할 수 없지만 그 파일에있는 어떤 것이 0을 반환 할 수 있습니다. 파일의 맨 위로 include 대신에 함수 내부에. 편집 : @ Pekka 맞습니다, 그건 당신 문제입니다. –

답변

5

PHP 코드가 잘못을 참조하십시오. 이 같아야 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

7

는 연결 연산자이며 +는 또한, 어레이 또는 병합 연산자 중입니다. +을 단순 유형 (배열 아님)과 결합하기 때문에 PHP는 두 값을 숫자 값으로 다운 캐스트합니다. 귀하의 경우에는 단지 0+0

6

.을 사용하여 +이 아닌 문자열을 연결합니다.

대신을 시도해보십시오

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에서 .입니다.

관련 문제