if(basename(__ FILE__)== xxx.php)...包含时停止工作?

时间:2015-06-02 13:01:36

标签: php

我尝试根据页面网址更改变量$number,并且是否存在get变量。我有它工作,但当代码放在一个包含的PHP文件中时,它说Notice: Undefined variable: number

这是直接在文件test.php中的作用:

if(basename(__FILE__) == 'test.php' && ($_GET['ts'] == '1')){
    $number = "42";
} 

因此,如果网址为http://example.com/test.php?ts=1,则上述内容将完美无缺。

这就是我遇到的问题:

include("number.php");

当我将代码行添加到名为number.php的文件中并将其包含在test.php中时,它就会停止工作。我做错了什么?

2 个答案:

答案 0 :(得分:1)

__FILE__始终返回文件名所在的位置。如果在include中使用,则返回包含文件的名称。

因此,如果代码位于number.php,则__FILE__将为number.php

您可以改为使用$_SERVER['PHP_SELF'],它返回当前正在执行的脚本的文件名,相对于文档根目录。

答案 1 :(得分:0)

__FILE__:已解决符号链接的文件的完整路径和文件名。 如果在include中使用,则返回包含文件的名称。

http://php.net/manual/en/language.constants.predefined.php

希望它对你有所帮助。