![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=1739304041-kzjk0FuSF5IO5cOfFwjSCOgClY7qlQuZ-0-16c10069716f040cbf13e99c8effa4c8)
$_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=1739304041-I5Fh4Eywa0nDuVOdEYxP0x5uSn8Dzjeu-0-568a284cd2ebc07dc40c23cd4d59b7b6)
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=1739304041-hzeINXL00OqV24a9lVA47PMj2S2IkuVP-0-1802c5bab24af0c3b1e674886e41382f)
可以使用如下方式获取当前访问页面的URL。
(源码文件:ch03/foo/bar/url.php)
![](https://epubservercos.yuewen.com/9146EB/23721566801954006/epubprivate/OEBPS/Images/Figure-P60_39648.jpg?sign=1739304041-c0uvNLxaw4EYrEXFIGUnUaHZUXGK7AaW-0-807a86c3eefe5c8b670ee3c76b3be4df)