![PHP面试一战到底](https://wfqqreader-1252317822.image.myqcloud.com/cover/891/44509891/b_44509891.jpg)
上QQ阅读APP看书,第一时间看更新
3.2 预定义变量
3.2.1 概念
PHP内置了一些预定义变量,这些变量通常为超全局变量,代码的任何地方都可以直接使用这些变量。常见的预定义变量如表3-1所示。
表3-1 预定义变量
![](https://epubservercos.yuewen.com/9146EB/23721566801954006/epubprivate/OEBPS/Images/Figure-T58_39642.jpg?sign=1738931141-Fr6sb5jHE98nWmywOVJ9OX9LYTzUCDGD-0-ba2111e312b772f8a100ce4aad7c01a3)
$_SERVER表示服务器和执行环境信息,是一个包含诸如头信息(header)、服务器(server)信息、客户端(remote)信息、路径(path)以及脚本位置(script locations)等信息的数组,如表3-2所示。
表3-2 $_SERVER信息
![](https://epubservercos.yuewen.com/9146EB/23721566801954006/epubprivate/OEBPS/Images/Figure-T58_39643.jpg?sign=1738931141-TamyLJc2YaYgIiu1yWunblHfobVOJkNe-0-4473bc561ed6aa87c4086a5bddf107e4)
3.2.2 面试题:执行脚本的位置
题目描述:如何获得PHP执行脚本的位置。
解答:脚本相关信息主要表示PHP执行脚本的位置和webroot的根目录,下面的例子演示了脚本相关的信息。
(源码文件:ch03/foo/bar/index.php)
echo 'PHP_SELF:'.$_SERVER['PHP_SELF'].PHP_EOL; echo 'DOCUMENT_ROOT:'.$_SERVER['DOCUMENT_ROOT'].PHP_EOL; echo 'SCRIPT_FILENAME:'.$_SERVER['SCRIPT_FILENAME'].PHP_EOL; echo 'SCRIPT_NAME:'.$_SERVER['PHP_SELF'].PHP_EOL;
首先进入ch03目录,然后启动PHP内置服务器:
> cd ch03 > php -S localhost:8080 PHP 5.6.30 Development Server started at Sat Jan 26 11:40:46 2019 Listening on http://localhost:8080 Document root is /Users/david/code/phpbook/ch03 Press Ctrl-C to quit.
在浏览器里输入http://localhost:8080/foo/bar/index.php,得到类似于如下的结果:
PHP_SELF:/foo/bar/index.php DOCUMENT_ROOT:/Users/david/code/phpbook/ch03 SCRIPT_FILENAME:/Users/david/code/phpbook/ch03/foo/bar/index.php SCRIPT_NAME:/foo/bar/index.php
3.3.3 面试题:获取当前访问页面的URL
题目描述:如何获取当前访问页面的URL。
解答:一个URL(例如:https://www.google.com/search?q=php)的组成请参考表3-3。
表3-3 URL的组成部分
![](https://epubservercos.yuewen.com/9146EB/23721566801954006/epubprivate/OEBPS/Images/Figure-T60_39649.jpg?sign=1738931141-1QyoCAB5IqwrQvstNLYUatxPFukNknFj-0-a15e5a7c71c130516a23c5caf2339a12)
可以使用如下方式获取当前访问页面的URL。
(源码文件:ch03/foo/bar/url.php)
![](https://epubservercos.yuewen.com/9146EB/23721566801954006/epubprivate/OEBPS/Images/Figure-P60_39648.jpg?sign=1738931141-zJ8CYwD51xZWbOIOrSiAda3eM6VmfV81-0-bf11d909f8ebce02cdcd9b1ed67240a3)