2012-02-18 106 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 .