2012-02-18 3 views
5

[OK]を、ので、私は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を返すようです。ファイルの先頭関数の内部ではなく編集:@ペッカはそうです、それはあなたの問題です。 –

答えて

17

文字列連結の演算子は、ではなく、.です。

http://www.php.net/manual/en/language.operators.string.php

+0

が変更されました。 〜に働きました、ありがとう – luke

+0

これはよくある間違いです。私がJavaからPHPに切り替えるときに、私はまだ時々起こります。 –

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で.です。

関連する問題